zipios::DeflateOutputStreambuf Class Reference

DeflateOutputStreambuf is an output stream filter, that deflates the data that is written to it before it passes it on to the output stream it is attached to. More...

#include <deflateoutputstreambuf.h>

Public Member Functions

bool closeStream ()
 
 DeflateOutputStreambuf (streambuf *outbuf, bool user_init=false, bool del_outbuf=false)
 DeflateOutputStreambuf constructor. More...
 
uint32 getCount () const
 Returns the number of bytes written to the streambuf, that has been processed from the input buffer by the compressor. More...
 
uint32 getCrc32 () const
 Returns the CRC32 for the current stream. More...
 
bool init (int comp_level=6)
 
virtual ~DeflateOutputStreambuf ()
 Destructor. More...
 
- Public Member Functions inherited from zipios::FilterOutputStreambuf
 FilterOutputStreambuf (streambuf *outbuf, bool del_outbuf=false)
 Constructor. More...
 
virtual ~FilterOutputStreambuf ()
 Destructor. More...
 

Protected Member Functions

void endDeflation ()
 Flushes the remaining data in the zlib buffers, after which the only possible operations are deflateEnd() or deflateReset(). More...
 
bool flushOutvec ()
 Flushes _outvec and updates _zs.next_out and _zs.avail_out. More...
 
virtual int overflow (int c=EOF)
 
virtual int sync ()
 

Detailed Description

DeflateOutputStreambuf is an output stream filter, that deflates the data that is written to it before it passes it on to the output stream it is attached to.

Deflation/Inflation is a compression/decompression method used in gzip and zip. The zlib library is used to perform the actual deflation, this class only wraps the functionality in an output stream filter.

Constructor & Destructor Documentation

◆ DeflateOutputStreambuf()

zipios::DeflateOutputStreambuf::DeflateOutputStreambuf ( streambuf *  outbuf,
bool  user_init = false,
bool  del_outbuf = false 
)
explicit

DeflateOutputStreambuf constructor.

Parameters
outbufthe streambuf to use for output.
user_initIf false user must invoke init() before writing any data. (ZipOutputStreambuf needs to do this)
del_outbufif true is specified outbuf will be deleted, when the DeflateOutputStreambuf is destructed.

References init().

◆ ~DeflateOutputStreambuf()

zipios::DeflateOutputStreambuf::~DeflateOutputStreambuf ( )
virtual

Destructor.

References closeStream().

Member Function Documentation

◆ closeStream()

bool zipios::DeflateOutputStreambuf::closeStream ( )

◆ endDeflation()

void zipios::DeflateOutputStreambuf::endDeflation ( )
protected

Flushes the remaining data in the zlib buffers, after which the only possible operations are deflateEnd() or deflateReset().

References flushOutvec(), and overflow().

Referenced by closeStream(), and init().

◆ flushOutvec()

bool zipios::DeflateOutputStreambuf::flushOutvec ( )
protected

Flushes _outvec and updates _zs.next_out and _zs.avail_out.

Referenced by endDeflation(), and overflow().

◆ getCount()

uint32 zipios::DeflateOutputStreambuf::getCount ( ) const

Returns the number of bytes written to the streambuf, that has been processed from the input buffer by the compressor.

After closeStream() has been called this number is the total number of bytes written to the stream.

Referenced by zipios::ZipOutputStreambuf::updateEntryHeaderInfo().

◆ getCrc32()

uint32 zipios::DeflateOutputStreambuf::getCrc32 ( ) const

Returns the CRC32 for the current stream.

The returned value is the CRC for the data that has been compressed already (due to a call to overflow()). As DeflateOutputStreambuf may buffer an arbitrary amount of bytes until closeStream() has been invoked, the returned value is not very useful before closeStream() has been called.

Referenced by zipios::ZipOutputStreambuf::updateEntryHeaderInfo().

◆ init()

bool zipios::DeflateOutputStreambuf::init ( int  comp_level = 6)

◆ overflow()

int zipios::DeflateOutputStreambuf::overflow ( int  c = EOF)
protectedvirtual

◆ sync()

int zipios::DeflateOutputStreambuf::sync ( )
protectedvirtual

The documentation for this class was generated from the following files: