1275793eaSopenharmony_ciThese classes provide a C++ stream interface to the zlib library. It allows you
2275793eaSopenharmony_cito do things like:
3275793eaSopenharmony_ci
4275793eaSopenharmony_ci  gzofstream outf("blah.gz");
5275793eaSopenharmony_ci  outf << "These go into the gzip file " << 123 << endl;
6275793eaSopenharmony_ci
7275793eaSopenharmony_ciIt does this by deriving a specialized stream buffer for gzipped files, which is
8275793eaSopenharmony_cithe way Stroustrup would have done it. :->
9275793eaSopenharmony_ci
10275793eaSopenharmony_ciThe gzifstream and gzofstream classes were originally written by Kevin Ruland
11275793eaSopenharmony_ciand made available in the zlib contrib/iostream directory. The older version still
12275793eaSopenharmony_cicompiles under gcc 2.xx, but not under gcc 3.xx, which sparked the development of
13275793eaSopenharmony_cithis version.
14275793eaSopenharmony_ci
15275793eaSopenharmony_ciThe new classes are as standard-compliant as possible, closely following the
16275793eaSopenharmony_ciapproach of the standard library's fstream classes. It compiles under gcc versions
17275793eaSopenharmony_ci3.2 and 3.3, but not under gcc 2.xx. This is mainly due to changes in the standard
18275793eaSopenharmony_cilibrary naming scheme. The new version of gzifstream/gzofstream/gzfilebuf differs
19275793eaSopenharmony_cifrom the previous one in the following respects:
20275793eaSopenharmony_ci- added showmanyc
21275793eaSopenharmony_ci- added setbuf, with support for unbuffered output via setbuf(0,0)
22275793eaSopenharmony_ci- a few bug fixes of stream behavior
23275793eaSopenharmony_ci- gzipped output file opened with default compression level instead of maximum level
24275793eaSopenharmony_ci- setcompressionlevel()/strategy() members replaced by single setcompression()
25275793eaSopenharmony_ci
26275793eaSopenharmony_ciThe code is provided "as is", with the permission to use, copy, modify, distribute
27275793eaSopenharmony_ciand sell it for any purpose without fee.
28275793eaSopenharmony_ci
29275793eaSopenharmony_ciLudwig Schwardt
30275793eaSopenharmony_ci<schwardt@sun.ac.za>
31275793eaSopenharmony_ci
32275793eaSopenharmony_ciDSP Lab
33275793eaSopenharmony_ciElectrical & Electronic Engineering Department
34275793eaSopenharmony_ciUniversity of Stellenbosch
35275793eaSopenharmony_ciSouth Africa
36