Gzipped file stream buffer class. More...
#include <zfstream.h>
Public Member Functions | |
| gzfilebuf * | open (const char *name, int io_mode) |
| gzfilebuf * | attach (int file_descriptor, int io_mode) |
| gzfilebuf * | close () |
| int | setcompressionlevel (int comp_level) |
| int | setcompressionstrategy (int comp_strategy) |
| int | is_open () const |
| virtual streampos | seekoff (streamoff, ios::seek_dir, int) |
| virtual int | sync () |
| int | setcompression (int comp_level, int comp_strategy=Z_DEFAULT_STRATEGY) |
| Set compression level and strategy on the fly. | |
| bool | is_open () const |
| Check if file is open. | |
| gzfilebuf * | open (const char *name, std::ios_base::openmode mode) |
| Open gzipped file. | |
| gzfilebuf * | attach (int fd, std::ios_base::openmode mode) |
| Attach to already open gzipped file. | |
| gzfilebuf * | close () |
| Close gzipped file. | |
Protected Member Functions | |
| virtual int | underflow () |
| virtual int | overflow (int=EOF) |
| bool | open_mode (std::ios_base::openmode mode, char *c_mode) const |
| Convert ios open mode int to mode string used by zlib. | |
| virtual std::streamsize | showmanyc () |
| Number of characters available in stream buffer. | |
| virtual int_type | underflow () |
| Fill get area from gzipped file. | |
| virtual int_type | overflow (int_type c=traits_type::eof()) |
| Write put area to gzipped file. | |
| virtual std::streambuf * | setbuf (char_type *p, std::streamsize n) |
| Installs external stream buffer. | |
| virtual int | sync () |
| Flush stream buffer to file. | |
Gzipped file stream buffer class.
This class implements basic_filebuf for gzipped files. It doesn't yet support seeking (allowed by zlib but slow/limited), putback and read/write access (tricky). Otherwise, it attempts to be a drop-in replacement for the standard file streambuf.
Definition at line 8 of file zfstream.h.
| gzfilebuf* attach | ( | int | fd, |
| std::ios_base::openmode | mode | ||
| ) |
Attach to already open gzipped file.
| fd | File descriptor. |
| mode | Open mode flags. |
this on success, NULL on failure. | gzfilebuf* close | ( | ) |
Close gzipped file.
this on success, NULL on failure. | bool is_open | ( | ) | const [inline] |
| gzfilebuf* open | ( | const char * | name, |
| std::ios_base::openmode | mode | ||
| ) |
Open gzipped file.
| name | File name. |
| mode | Open mode flags. |
this on success, NULL on failure. | bool open_mode | ( | std::ios_base::openmode | mode, |
| char * | c_mode | ||
| ) | const [protected] |
Convert ios open mode int to mode string used by zlib.
| virtual int_type overflow | ( | int_type | c = traits_type::eof() ) |
[protected, virtual] |
Write put area to gzipped file.
| c | Extra character to add to buffer contents. |
This actually writes characters in stream buffer to gzipped file. With unbuffered output this is done one character at a time.
| virtual std::streambuf* setbuf | ( | char_type * | p, |
| std::streamsize | n | ||
| ) | [protected, virtual] |
Installs external stream buffer.
| p | Pointer to char buffer. |
| n | Size of external buffer. |
this on success, NULL on failure.Call setbuf(0,0) to enable unbuffered output.
| int setcompression | ( | int | comp_level, |
| int | comp_strategy = Z_DEFAULT_STRATEGY |
||
| ) |
Set compression level and strategy on the fly.
| comp_level | Compression level (see zlib.h for allowed values) |
| comp_strategy | Compression strategy (see zlib.h for allowed values) |
Unfortunately, these parameters cannot be modified separately, as the previous zfstream version assumed. Since the strategy is seldom changed, it can default and setcompression(level) then becomes like the old setcompressionlevel(level).
| virtual std::streamsize showmanyc | ( | ) | [protected, virtual] |
Number of characters available in stream buffer.
This indicates number of characters in get area of stream buffer. These characters can be read without accessing the gzipped file.
| virtual int sync | ( | ) | [protected, virtual] |
Flush stream buffer to file.
This calls underflow(EOF) to do the job.
| virtual int_type underflow | ( | ) | [protected, virtual] |
Fill get area from gzipped file.
This actually reads characters from gzipped file to stream buffer. Always buffered.
1.7.2