diff options
Diffstat (limited to 'ml/dlib/dlib/bit_stream')
-rw-r--r-- | ml/dlib/dlib/bit_stream/bit_stream_kernel_1.cpp | 200 | ||||
-rw-r--r-- | ml/dlib/dlib/bit_stream/bit_stream_kernel_1.h | 120 | ||||
-rw-r--r-- | ml/dlib/dlib/bit_stream/bit_stream_kernel_abstract.h | 185 | ||||
-rw-r--r-- | ml/dlib/dlib/bit_stream/bit_stream_kernel_c.h | 172 | ||||
-rw-r--r-- | ml/dlib/dlib/bit_stream/bit_stream_multi_1.h | 103 | ||||
-rw-r--r-- | ml/dlib/dlib/bit_stream/bit_stream_multi_abstract.h | 77 | ||||
-rw-r--r-- | ml/dlib/dlib/bit_stream/bit_stream_multi_c.h | 101 |
7 files changed, 0 insertions, 958 deletions
diff --git a/ml/dlib/dlib/bit_stream/bit_stream_kernel_1.cpp b/ml/dlib/dlib/bit_stream/bit_stream_kernel_1.cpp deleted file mode 100644 index f49db14d5..000000000 --- a/ml/dlib/dlib/bit_stream/bit_stream_kernel_1.cpp +++ /dev/null @@ -1,200 +0,0 @@ -// 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_CPp_ -#define DLIB_BIT_STREAM_KERNEL_1_CPp_ - - -#include "bit_stream_kernel_1.h" -#include "../algs.h" - -#include <iostream> - -namespace dlib -{ - - inline void swap ( - bit_stream_kernel_1& a, - bit_stream_kernel_1& b - ) { a.swap(b); } - -// ---------------------------------------------------------------------------------------- -// ---------------------------------------------------------------------------------------- - // member function definitions -// ---------------------------------------------------------------------------------------- -// ---------------------------------------------------------------------------------------- - - void bit_stream_kernel_1:: - clear ( - ) - { - if (write_mode) - { - write_mode = false; - - // flush output buffer - if (buffer_size > 0) - { - buffer <<= 8 - buffer_size; - osp->write(reinterpret_cast<char*>(&buffer),1); - } - } - else - read_mode = false; - - } - -// ---------------------------------------------------------------------------------------- - - void bit_stream_kernel_1:: - set_input_stream ( - std::istream& is - ) - { - isp = &is; - read_mode = true; - - buffer_size = 0; - } - -// ---------------------------------------------------------------------------------------- - - void bit_stream_kernel_1:: - set_output_stream ( - std::ostream& os - ) - { - osp = &os; - write_mode = true; - - buffer_size = 0; - } - -// ---------------------------------------------------------------------------------------- - - void bit_stream_kernel_1:: - close ( - ) - { - if (write_mode) - { - write_mode = false; - - // flush output buffer - if (buffer_size > 0) - { - buffer <<= 8 - buffer_size; - osp->write(reinterpret_cast<char*>(&buffer),1); - } - } - else - read_mode = false; - } - -// ---------------------------------------------------------------------------------------- - - bool bit_stream_kernel_1:: - is_in_write_mode ( - ) const - { - return write_mode; - } - -// ---------------------------------------------------------------------------------------- - - bool bit_stream_kernel_1:: - is_in_read_mode ( - ) const - { - return read_mode; - } - -// ---------------------------------------------------------------------------------------- - - void bit_stream_kernel_1:: - write ( - int bit - ) - { - // flush buffer if necessary - if (buffer_size == 8) - { - buffer <<= 8 - buffer_size; - if (osp->rdbuf()->sputn(reinterpret_cast<char*>(&buffer),1) == 0) - { - throw std::ios_base::failure("error occurred in the bit_stream object"); - } - - buffer_size = 0; - } - - ++buffer_size; - buffer <<= 1; - buffer += static_cast<unsigned char>(bit); - } - -// ---------------------------------------------------------------------------------------- - - bool bit_stream_kernel_1:: - read ( - int& bit - ) - { - // get new byte if necessary - if (buffer_size == 0) - { - if (isp->rdbuf()->sgetn(reinterpret_cast<char*>(&buffer), 1) == 0) - { - // if we didn't read anything then return false - return false; - } - - buffer_size = 8; - } - - // put the most significant bit from buffer into bit - bit = static_cast<int>(buffer >> 7); - - // shift out the bit that was just read - buffer <<= 1; - --buffer_size; - - return true; - } - -// ---------------------------------------------------------------------------------------- - - void bit_stream_kernel_1:: - swap ( - bit_stream_kernel_1& item - ) - { - - std::istream* isp_temp = item.isp; - std::ostream* osp_temp = item.osp; - bool write_mode_temp = item.write_mode; - bool read_mode_temp = item.read_mode; - unsigned char buffer_temp = item.buffer; - unsigned short buffer_size_temp = item.buffer_size; - - item.isp = isp; - item.osp = osp; - item.write_mode = write_mode; - item.read_mode = read_mode; - item.buffer = buffer; - item.buffer_size = buffer_size; - - - isp = isp_temp; - osp = osp_temp; - write_mode = write_mode_temp; - read_mode = read_mode_temp; - buffer = buffer_temp; - buffer_size = buffer_size_temp; - - } - -// ---------------------------------------------------------------------------------------- - -} -#endif // DLIB_BIT_STREAM_KERNEL_1_CPp_ - diff --git a/ml/dlib/dlib/bit_stream/bit_stream_kernel_1.h b/ml/dlib/dlib/bit_stream/bit_stream_kernel_1.h deleted file mode 100644 index 801e93e0a..000000000 --- a/ml/dlib/dlib/bit_stream/bit_stream_kernel_1.h +++ /dev/null @@ -1,120 +0,0 @@ -// 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_ - diff --git a/ml/dlib/dlib/bit_stream/bit_stream_kernel_abstract.h b/ml/dlib/dlib/bit_stream/bit_stream_kernel_abstract.h deleted file mode 100644 index 00c2ae3b9..000000000 --- a/ml/dlib/dlib/bit_stream/bit_stream_kernel_abstract.h +++ /dev/null @@ -1,185 +0,0 @@ -// Copyright (C) 2003 Davis E. King (davis@dlib.net) -// License: Boost Software License See LICENSE.txt for the full license. -#undef DLIB_BIT_STREAM_KERNEl_ABSTRACT_ -#ifdef DLIB_BIT_STREAM_KERNEl_ABSTRACT_ - -#include <iosfwd> - -namespace dlib -{ - - class bit_stream - { - - /*! - INITIAL VALUE - is_in_write_mode() == false - is_in_read_mode() == false - - WHAT THIS OBJECT REPRESENTS - this object is a middle man between a user and the iostream classes. - it allows single bits to be read/written easily to/from - the iostream classes - - BUFFERING: - This object will only read/write single bytes at a time from/to the - iostream objects. Any buffered bits still in the bit_stream object - when it is closed or destructed are lost if it is in read mode. If - it is in write mode then any remaining bits are guaranteed to be - written to the output stream by the time it is closed or destructed. - !*/ - - - public: - - bit_stream ( - ); - /*! - ensures - - #*this is properly initialized - throws - - std::bad_alloc - !*/ - - virtual ~bit_stream ( - ); - /*! - ensures - - all memory associated with *this has been released - !*/ - - void clear ( - ); - /*! - ensures - - #*this has its initial value - throws - - std::bad_alloc - if this exception is thrown then *this is unusable - until clear() is called and succeeds - !*/ - - - void set_input_stream ( - std::istream& is - ); - /*! - requires - - is_in_write_mode() == false - - is_in_read_mode() == false - - is is ready to give input - ensures - - #is_in_write_mode() == false - - #is_in_read_mode() == true - - #*this will now be reading from is - throws - - std::bad_alloc - !*/ - - void set_output_stream ( - std::ostream& os - ); - /*! - requires - - is_in_write_mode() == false - - is_in_read_mode() == false - - os is ready to take output - ensures - - #is_in_write_mode() == true - - #is_in_read_mode() == false - - #*this will now write to os - throws - - std::bad_alloc - !*/ - - - - void close ( - ); - /*! - requires - - is_in_write_mode() == true || is_in_read_mode() == true - ensures - - #is_in_write_mode() == false - - #is_in_read_mode() == false - !*/ - - bool is_in_write_mode ( - ) const; - /*! - ensures - - returns true if *this is associated with an output stream object - - returns false otherwise - !*/ - - bool is_in_read_mode ( - ) const; - /*! - ensures - - returns true if *this is associated with an input stream object - - returns false otherwise - !*/ - - void write ( - int bit - ); - /*! - requires - - is_in_write_mode() == true - - bit == 0 || bit == 1 - ensures - - bit will be written to the ostream object associated with *this - throws - - std::ios_base::failure - if (there was a problem writing to the output stream) then - this exception will be thrown. #*this will be unusable until - clear() is called and succeeds - - any other exception - if this exception is thrown then #*this is unusable - until clear() is called and succeeds - !*/ - - bool read ( - int& bit - ); - /*! - requires - - is_in_read_mode() == true - ensures - - the next bit has been read and placed into #bit - - returns true if the read was successful, else false - (ex. false if EOF has been reached) - throws - - any exception - if this exception is thrown then #*this is unusable - until clear() is called and succeeds - !*/ - - void swap ( - bit_stream& item - ); - /*! - ensures - - swaps *this and item - !*/ - - private: - - // restricted functions - bit_stream(bit_stream&); // copy constructor - bit_stream& operator=(bit_stream&); // assignment operator - - }; - - inline void swap ( - bit_stream& a, - bit_stream& b - ) { a.swap(b); } - /*! - provides a global swap function - !*/ - -} - -#endif // DLIB_BIT_STREAM_KERNEl_ABSTRACT_ - diff --git a/ml/dlib/dlib/bit_stream/bit_stream_kernel_c.h b/ml/dlib/dlib/bit_stream/bit_stream_kernel_c.h deleted file mode 100644 index 1d52bff20..000000000 --- a/ml/dlib/dlib/bit_stream/bit_stream_kernel_c.h +++ /dev/null @@ -1,172 +0,0 @@ -// 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_C_ -#define DLIB_BIT_STREAM_KERNEl_C_ - -#include "bit_stream_kernel_abstract.h" -#include "../algs.h" -#include "../assert.h" -#include <iosfwd> - -namespace dlib -{ - - template < - typename bit_stream_base // implements bit_stream/bit_stream_kernel_abstract.h - > - class bit_stream_kernel_c : public bit_stream_base - { - public: - - - void set_input_stream ( - std::istream& is - ); - - void set_output_stream ( - std::ostream& os - ); - - void close ( - ); - - void write ( - int bit - ); - - bool read ( - int& bit - ); - - }; - - template < - typename bit_stream_base - > - inline void swap ( - bit_stream_kernel_c<bit_stream_base>& a, - bit_stream_kernel_c<bit_stream_base>& b - ) { a.swap(b); } - -// ---------------------------------------------------------------------------------------- -// ---------------------------------------------------------------------------------------- - // member function definitions -// ---------------------------------------------------------------------------------------- -// ---------------------------------------------------------------------------------------- - - template < - typename bit_stream_base - > - void bit_stream_kernel_c<bit_stream_base>:: - set_input_stream ( - std::istream& is - ) - { - // make sure requires clause is not broken - DLIB_CASSERT(( this->is_in_write_mode() == false ) && ( this->is_in_read_mode() == false ), - "\tvoid bit_stream::set_intput_stream" - << "\n\tbit_stream must not be in write or read mode" - << "\n\tthis: " << this - ); - - // call the real function - bit_stream_base::set_input_stream(is); - - } - -// ---------------------------------------------------------------------------------------- - - template < - typename bit_stream_base - > - void bit_stream_kernel_c<bit_stream_base>:: - set_output_stream ( - std::ostream& os - ) - { - - // make sure requires clause is not broken - DLIB_CASSERT(( this->is_in_write_mode() == false ) && ( this->is_in_read_mode() == false ), - "\tvoid bit_stream::set_output_stream" - << "\n\tbit_stream must not be in write or read mode" - << "\n\tthis: " << this - ); - - // call the real function - bit_stream_base::set_output_stream(os); - } - -// ---------------------------------------------------------------------------------------- - - template < - typename bit_stream_base - > - void bit_stream_kernel_c<bit_stream_base>:: - close ( - ) - { - - // make sure requires clause is not broken - DLIB_CASSERT(( this->is_in_write_mode() == true ) || ( this->is_in_read_mode() == true ), - "\tvoid bit_stream::close" - << "\n\tyou can't close a bit_stream that isn't open" - << "\n\tthis: " << this - ); - - // call the real function - bit_stream_base::close(); - } - -// ---------------------------------------------------------------------------------------- - - template < - typename bit_stream_base - > - void bit_stream_kernel_c<bit_stream_base>:: - write ( - int bit - ) - { - // make sure requires clause is not broken - DLIB_CASSERT(( this->is_in_write_mode() == true ) && ( bit == 0 || bit == 1 ), - "\tvoid bit_stream::write" - << "\n\tthe bit stream bust be in write mode and bit must be either 1 or 0" - << "\n\tis_in_write_mode() == " << this->is_in_write_mode() - << "\n\tbit == " << bit - << "\n\tthis: " << this - ); - - // call the real function - bit_stream_base::write(bit); - - } - -// ---------------------------------------------------------------------------------------- - - template < - typename bit_stream_base - > - bool bit_stream_kernel_c<bit_stream_base>:: - read ( - int& bit - ) - { - - // make sure requires clause is not broken - DLIB_CASSERT(( this->is_in_read_mode() == true ), - "\tbool bit_stream::read" - << "\n\tyou can't read from a bit_stream that isn't in read mode" - << "\n\tthis: " << this - ); - - // call the real function - return bit_stream_base::read(bit); - - } - -// ---------------------------------------------------------------------------------------- - -} - -#endif // DLIB_BIT_STREAM_KERNEl_C_ - diff --git a/ml/dlib/dlib/bit_stream/bit_stream_multi_1.h b/ml/dlib/dlib/bit_stream/bit_stream_multi_1.h deleted file mode 100644 index bf1cc0357..000000000 --- a/ml/dlib/dlib/bit_stream/bit_stream_multi_1.h +++ /dev/null @@ -1,103 +0,0 @@ -// Copyright (C) 2003 Davis E. King (davis@dlib.net) -// License: Boost Software License See LICENSE.txt for the full license. -#ifndef DLIB_BIT_STREAM_MULTi_1_ -#define DLIB_BIT_STREAM_MULTi_1_ - -#include "bit_stream_multi_abstract.h" - -namespace dlib -{ - template < - typename bit_stream_base - > - class bit_stream_multi_1 : public bit_stream_base - { - - public: - - void multi_write ( - unsigned long data, - int num_to_write - ); - - int multi_read ( - unsigned long& data, - int num_to_read - ); - - }; - - template < - typename bit_stream_base - > - inline void swap ( - bit_stream_multi_1<bit_stream_base>& a, - bit_stream_multi_1<bit_stream_base>& b - ) { a.swap(b); } - -// ---------------------------------------------------------------------------------------- -// ---------------------------------------------------------------------------------------- - // member function definitions -// ---------------------------------------------------------------------------------------- -// ---------------------------------------------------------------------------------------- - - template < - typename bit_stream_base - > - void bit_stream_multi_1<bit_stream_base>:: - multi_write ( - unsigned long data, - int num_to_write - ) - { - // move the first bit into the most significant position - data <<= 32 - num_to_write; - - for (int i = 0; i < num_to_write; ++i) - { - // write the first bit from data - this->write(static_cast<char>(data >> 31)); - - // shift the next bit into position - data <<= 1; - - } - } - -// ---------------------------------------------------------------------------------------- - - template < - typename bit_stream_base - > - int bit_stream_multi_1<bit_stream_base>:: - multi_read ( - unsigned long& data, - int num_to_read - ) - { - int bit, i; - data = 0; - for (i = 0; i < num_to_read; ++i) - { - - // get a bit - if (this->read(bit) == false) - break; - - // shift data to make room for this new bit - data <<= 1; - - // put bit into the least significant position in data - data += static_cast<unsigned long>(bit); - - } - - return i; - } - -// ---------------------------------------------------------------------------------------- - -} - -#endif // DLIB_BIT_STREAM_MULTi_1_ - diff --git a/ml/dlib/dlib/bit_stream/bit_stream_multi_abstract.h b/ml/dlib/dlib/bit_stream/bit_stream_multi_abstract.h deleted file mode 100644 index 061af94f4..000000000 --- a/ml/dlib/dlib/bit_stream/bit_stream_multi_abstract.h +++ /dev/null @@ -1,77 +0,0 @@ -// Copyright (C) 2003 Davis E. King (davis@dlib.net) -// License: Boost Software License See LICENSE.txt for the full license. -#undef DLIB_BIT_STREAM_MULTi_ABSTRACT_ -#ifdef DLIB_BIT_STREAM_MULTi_ABSTRACT_ - -#include "bit_stream_kernel_abstract.h" - -namespace dlib -{ - template < - typename bit_stream_base - > - class bit_stream_multi : public bit_stream_base - { - - /*! - REQUIREMENTS ON BIT_STREAM_BASE - it is an implementation of bit_stream/bit_stream_kernel_abstract.h - - - WHAT THIS EXTENSION DOES FOR BIT_STREAM - this gives a bit_stream object the ability to read/write multible bits - at a time - !*/ - - - public: - - void multi_write ( - unsigned long data, - int num_to_write - ); - /*! - requires - - is_in_write_mode() == true - - 0 <= num_to_write <= 32 - ensures - - num_to_write low order bits from data will be written to the ostream - - object associated with *this - example: if data is 10010 then the bits will be written in the - order 1,0,0,1,0 - !*/ - - - int multi_read ( - unsigned long& data, - int num_to_read - ); - /*! - requires - - is_in_read_mode() == true - - 0 <= num_to_read <= 32 - ensures - - tries to read num_to_read bits into the low order end of #data - example: if the incoming bits were 10010 then data would end - up with 10010 as its low order bits - - all of the bits in #data not filled in by multi_read() are zero - - returns the number of bits actually read into #data - !*/ - - }; - - template < - typename bit_stream_base - > - inline void swap ( - bit_stream_multi<bit_stream_base>& a, - bit_stream_multi<bit_stream_base>& b - ) { a.swap(b); } - /*! - provides a global swap function - !*/ - -} - -#endif // DLIB_BIT_STREAM_MULTi_ABSTRACT_ - diff --git a/ml/dlib/dlib/bit_stream/bit_stream_multi_c.h b/ml/dlib/dlib/bit_stream/bit_stream_multi_c.h deleted file mode 100644 index de80c6328..000000000 --- a/ml/dlib/dlib/bit_stream/bit_stream_multi_c.h +++ /dev/null @@ -1,101 +0,0 @@ -// Copyright (C) 2003 Davis E. King (davis@dlib.net) -// License: Boost Software License See LICENSE.txt for the full license. -#ifndef DLIB_BIT_STREAM_MULTi_C_ -#define DLIB_BIT_STREAM_MULTi_C_ - -#include "bit_stream_multi_abstract.h" -#include "../algs.h" -#include "../assert.h" - -namespace dlib -{ - template < - typename bit_stream_base // implements bit_stream/bit_stream_multi_abstract.h - > - class bit_stream_multi_c : public bit_stream_base - { - public: - - void multi_write ( - unsigned long data, - int num_to_write - ); - - int multi_read ( - unsigned long& data, - int num_to_read - ); - - }; - - template < - typename bit_stream_base - > - inline void swap ( - bit_stream_multi_c<bit_stream_base>& a, - bit_stream_multi_c<bit_stream_base>& b - ) { a.swap(b); } - -// ---------------------------------------------------------------------------------------- -// ---------------------------------------------------------------------------------------- - // member function definitions -// ---------------------------------------------------------------------------------------- -// ---------------------------------------------------------------------------------------- - - template < - typename bit_stream_base - > - void bit_stream_multi_c<bit_stream_base>:: - multi_write ( - unsigned long data, - int num_to_write - ) - { - // make sure requires clause is not broken - DLIB_CASSERT( (this->is_in_write_mode() == true) && (num_to_write >= 0 && num_to_write <=32), - "\tvoid bit_stream::write" - << "\n\tthe bit stream bust be in write mode and" - << "\n\tnum_to_write must be between 0 and 32 inclusive" - << "\n\tnum_to_write == " << num_to_write - << "\n\tis_in_write_mode() == " << this->is_in_write_mode() - << "\n\tthis: " << this - ); - - // call the real function - bit_stream_base::multi_write(data,num_to_write); - - } - -// ---------------------------------------------------------------------------------------- - - template < - typename bit_stream_base - > - int bit_stream_multi_c<bit_stream_base>:: - multi_read ( - unsigned long& data, - int num_to_read - ) - { - - // make sure requires clause is not broken - DLIB_CASSERT(( this->is_in_read_mode() == true && ( num_to_read >= 0 && num_to_read <=32 ) ), - "\tvoid bit_stream::read" - << "\n\tyou can't read from a bit_stream that isn't in read mode and" - << "\n\tnum_to_read must be between 0 and 32 inclusive" - << "\n\tnum_to_read == " << num_to_read - << "\n\tis_in_read_mode() == " << this->is_in_read_mode() - << "\n\tthis: " << this - ); - - // call the real function - return bit_stream_base::multi_read(data,num_to_read); - - } - -// ---------------------------------------------------------------------------------------- - -} - -#endif // DLIB_BIT_STREAM_MULTi_C_ - |