|
Ruby 3.0.5p211 (2022-11-24 revision ba5cf0f7c52d4d35cc6a173c89eda98ceffa2dcf)
|
Gzipped file stream buffer class. More...
#include <zfstream.h>
Public Member Functions | |
| gzfilebuf () | |
| virtual | ~gzfilebuf () |
| 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 () |
| gzfilebuf () | |
| virtual | ~gzfilebuf () |
| int | setcompression (int comp_level, int comp_strategy=Z_DEFAULT_STRATEGY) |
| Set compression level and strategy on the fly. More... | |
| bool | is_open () const |
| Check if file is open. More... | |
| gzfilebuf * | open (const char *name, std::ios_base::openmode mode) |
| Open gzipped file. More... | |
| gzfilebuf * | attach (int fd, std::ios_base::openmode mode) |
| Attach to already open gzipped file. More... | |
| gzfilebuf * | close () |
| Close gzipped file. More... | |
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. More... | |
| virtual std::streamsize | showmanyc () |
| Number of characters available in stream buffer. More... | |
| virtual int_type | underflow () |
| Fill get area from gzipped file. More... | |
| virtual int_type | overflow (int_type c=traits_type::eof()) |
| Write put area to gzipped file. More... | |
| virtual std::streambuf * | setbuf (char_type *p, std::streamsize n) |
| Installs external stream buffer. More... | |
| virtual int | sync () |
| Flush stream buffer to file. More... | |
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::gzfilebuf | ( | ) |
|
virtual |
| gzfilebuf::gzfilebuf | ( | ) |
|
virtual |
Attach to already open gzipped file.
| fd | File descriptor. |
| mode | Open mode flags. |
this on success, NULL on failure. | gzfilebuf * gzfilebuf::close | ( | ) |
| gzfilebuf * gzfilebuf::close | ( | ) |
Close gzipped file.
this on success, NULL on failure.
|
inline |
Definition at line 22 of file zfstream.h.
References NULL.
Referenced by gzifstream::is_open(), and gzofstream::is_open().
|
inline |
Check if file is open.
Definition at line 57 of file zfstream.h.
References NULL.
Open gzipped file.
| name | File name. |
| mode | Open mode flags. |
this on success, NULL on failure.
|
protected |
Convert ios open mode int to mode string used by zlib.
|
protectedvirtual |
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 |
|
protectedvirtual |
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 gzfilebuf::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).
|
protectedvirtual |
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 |
|
protectedvirtual |
Flush stream buffer to file.
This calls underflow(EOF) to do the job.
|
protectedvirtual |
|
protectedvirtual |
Fill get area from gzipped file.
This actually reads characters from gzipped file to stream buffer. Always buffered.