Main Page   Class Hierarchy   Compound List   File List   Compound Members  

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>

Inheritance diagram for zipios::DeflateOutputStreambuf

Inheritance graph

[legend]
List of all members.

Public Methods

 DeflateOutputStreambuf ( streambuf *outbuf, bool user_init = false, bool del_outbuf = false )
 DeflateOutputStreambuf constructor. More...

virtual ~DeflateOutputStreambuf ()
 Destructor. More...

bool init ( int comp_level = 6 )
bool closeStream ()
uint32 getCrc32 () const
 Returns the CRC32 for the current stream. 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...


Protected Methods

virtual int overflow ( int c = EOF )
virtual int sync ()
bool flushOutvec ()
 Flushes _outvec and updates _zs.next_out and _zs.avail_out. More...

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


Protected Attributes

const int _invecsize
vector< char > _invec
const int _outvecsize
vector< char > _outvec
uint32 _crc32
uint32 _overflown_bytes

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.

Definition at line 25 of file deflateoutputstreambuf.h.


Constructor & Destructor Documentation

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

DeflateOutputStreambuf constructor.

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

Definition at line 16 of file deflateoutputstreambuf.cpp.

zipios::DeflateOutputStreambuf::~DeflateOutputStreambuf ( ) [virtual]
 

Destructor.

Definition at line 41 of file deflateoutputstreambuf.cpp.


Member Function Documentation

bool zipios::DeflateOutputStreambuf::closeStream ( )
 

Definition at line 86 of file deflateoutputstreambuf.cpp.

void zipios::DeflateOutputStreambuf::endDeflation ( ) [protected]
 

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

Definition at line 171 of file deflateoutputstreambuf.cpp.

bool zipios::DeflateOutputStreambuf::flushOutvec ( ) [protected]
 

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

Definition at line 160 of file deflateoutputstreambuf.cpp.

uint32 zipios::DeflateOutputStreambuf::getCount ( ) const [inline]
 

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.

Definition at line 55 of file deflateoutputstreambuf.h.

uint32 zipios::DeflateOutputStreambuf::getCrc32 ( ) const [inline]
 

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.

Definition at line 49 of file deflateoutputstreambuf.h.

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

Definition at line 49 of file deflateoutputstreambuf.cpp.

int zipios::DeflateOutputStreambuf::overflow ( int c = EOF ) [protected, virtual]
 

Definition at line 107 of file deflateoutputstreambuf.cpp.

int zipios::DeflateOutputStreambuf::sync ( ) [protected, virtual]
 

Definition at line 153 of file deflateoutputstreambuf.cpp.


Member Data Documentation

uint32 zipios::DeflateOutputStreambuf::_crc32 [protected]
 

Definition at line 77 of file deflateoutputstreambuf.h.

vector< char > zipios::DeflateOutputStreambuf::_invec [protected]
 

Definition at line 73 of file deflateoutputstreambuf.h.

const int zipios::DeflateOutputStreambuf::_invecsize [protected]
 

Definition at line 72 of file deflateoutputstreambuf.h.

vector< char > zipios::DeflateOutputStreambuf::_outvec [protected]
 

Definition at line 75 of file deflateoutputstreambuf.h.

const int zipios::DeflateOutputStreambuf::_outvecsize [protected]
 

Definition at line 74 of file deflateoutputstreambuf.h.

uint32 zipios::DeflateOutputStreambuf::_overflown_bytes [protected]
 

Definition at line 78 of file deflateoutputstreambuf.h.


The documentation for this class was generated from the following files:
Generated at Tue Aug 14 20:39:56 2001 for Zipios++ by doxygen1.2.0 written by Dimitri van Heesch, © 1997-2000