// Copyright (C) 2003 Davis E. King ([email protected]) | |
// License: Boost Software License See LICENSE.txt for the full license. | |
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 | |
}; | |
} | |