| 1 |
These classes provide a C++ stream interface to the zlib library. It allows you |
| 2 |
to do things like: |
| 3 |
|
| 4 |
gzofstream outf("blah.gz"); |
| 5 |
outf << "These go into the gzip file " << 123 << endl; |
| 6 |
|
| 7 |
It does this by deriving a specialized stream buffer for gzipped files, which is |
| 8 |
the way Stroustrup would have done it. :-> |
| 9 |
|
| 10 |
The gzifstream and gzofstream classes were originally written by Kevin Ruland |
| 11 |
and made available in the zlib contrib/iostream directory. The older version still |
| 12 |
compiles under gcc 2.xx, but not under gcc 3.xx, which sparked the development of |
| 13 |
this version. |
| 14 |
|
| 15 |
The new classes are as standard-compliant as possible, closely following the |
| 16 |
approach of the standard library's fstream classes. It compiles under gcc versions |
| 17 |
3.2 and 3.3, but not under gcc 2.xx. This is mainly due to changes in the standard |
| 18 |
library naming scheme. The new version of gzifstream/gzofstream/gzfilebuf differs |
| 19 |
from the previous one in the following respects: |
| 20 |
- added showmanyc |
| 21 |
- added setbuf, with support for unbuffered output via setbuf(0,0) |
| 22 |
- a few bug fixes of stream behavior |
| 23 |
- gzipped output file opened with default compression level instead of maximum level |
| 24 |
- setcompressionlevel()/strategy() members replaced by single setcompression() |
| 25 |
|
| 26 |
The code is provided "as is", with the permission to use, copy, modify, distribute |
| 27 |
and sell it for any purpose without fee. |
| 28 |
|
| 29 |
Ludwig Schwardt |
| 30 |
<schwardt@sun.ac.za> |
| 31 |
|
| 32 |
DSP Lab |
| 33 |
Electrical & Electronic Engineering Department |
| 34 |
University of Stellenbosch |
| 35 |
South Africa |