dlib C++ Library - bit_stream_kernel_1.h

// Copyright (C) 2003 Davis E. King (davis@dlib.net)
// License: Boost Software License See LICENSE.txt for the full license.
#ifndef DLIB_BIT_STREAM_KERNEl_1_
#define DLIB_BIT_STREAM_KERNEl_1_
#include "bit_stream_kernel_abstract.h"
#include <iosfwd>
namespace dlib
{
 class bit_stream_kernel_1
 {
 /*!
 INITIAL VALUE
 write_mode == false
 read_mode == false 
 CONVENTION
 write_mode == is_in_write_mode()
 read_mode == is_in_read_mode()
 if (write_mode)
 {
 osp == pointer to an ostream object
 buffer == the low order bits of buffer are the bits to be 
 written
 buffer_size == the number of low order bits in buffer that are 
 bits that should be written
 the lowest order bit is the last bit entered by the user
 }
 if (read_mode)
 {
 isp == pointer to an istream object
 buffer == the high order bits of buffer are the bits 
 waiting to be read by the user
 buffer_size == the number of high order bits in buffer that 
 are bits that are waiting to be read
 the highest order bit is the next bit to give to the user
 }
 !*/
 public:
 bit_stream_kernel_1 (
 ) :
 write_mode(false),
 read_mode(false)
 {}
 virtual ~bit_stream_kernel_1 (
 )
 {}
 void clear (
 );
 void set_input_stream (
 std::istream& is
 );
 void set_output_stream (
 std::ostream& os
 );
 void close (
 );
 inline bool is_in_write_mode (
 ) const;
 inline bool is_in_read_mode (
 ) const;
 inline void write (
 int bit
 );
 bool read (
 int& bit
 );
 void swap (
 bit_stream_kernel_1& item
 );
 private:
 // member data
 std::istream* isp;
 std::ostream* osp;
 bool write_mode;
 bool read_mode;
 unsigned char buffer;
 unsigned short buffer_size;
 
 // restricted functions
 bit_stream_kernel_1(bit_stream_kernel_1&); // copy constructor
 bit_stream_kernel_1& operator=(bit_stream_kernel_1&); // assignment operator
 };
 inline void swap (
 bit_stream_kernel_1& a, 
 bit_stream_kernel_1& b
 );
// ----------------------------------------------------------------------------------------
}
#ifdef NO_MAKEFILE
#include "bit_stream_kernel_1.cpp"
#endif
#endif // DLIB_BIT_STREAM_KERNEl_1_

AltStyle によって変換されたページ (->オリジナル) /