// Copyright (C) 2003 Davis E. King (davis@dlib.net) // License: Boost Software License See LICENSE.txt for the full license. #undef DLIB_COMPRESS_STREAM_KERNEl_ABSTRACT_ #ifdef DLIB_COMPRESS_STREAM_KERNEl_ABSTRACT_ #include "../algs.h" #include <iosfwd> namespace dlib { class compress_stream { /*! INITIAL VALUE This object does not have any state associated with it. WHAT THIS OBJECT REPRESENTS This object consists of the two functions compress and decompress. These functions allow you to compress and decompress data. !*/ public: class decompression_error : public dlib::error {}; compress_stream ( ); /*! ensures - #*this is properly initialized throws - std::bad_alloc !*/ virtual ~compress_stream ( ); /*! ensures - all memory associated with *this has been released !*/ void compress ( std::istream& in, std::ostream& out ) const; /*! ensures - reads all data from in (until EOF is reached) and compresses it and writes it to out throws - std::ios_base::failure if there was a problem writing to out then this exception will be thrown. - any other exception this exception may be thrown if there is any other problem !*/ void decompress ( std::istream& in, std::ostream& out ) const; /*! ensures - reads data from in, decompresses it and writes it to out. note that it stops reading data from in when it encounters the end of the compressed data, not when it encounters EOF. throws - std::ios_base::failure if there was a problem writing to out then this exception will be thrown. - decompression_error if an error was detected in the compressed data that prevented it from being correctly decompressed then this exception is thrown. - any other exception this exception may be thrown if there is any other problem !*/ private: // restricted functions compress_stream(compress_stream&); // copy constructor compress_stream& operator=(compress_stream&); // assignment operator }; } #endif // DLIB_COMPRESS_STREAM_KERNEl_ABSTRACT_