zlibcomplete
Simple C++ wrapper for zlib using RAII and std::string with flush.
 All Classes Namespaces Files Functions Enumerations Enumerator Macros Pages
Public Member Functions | List of all members
zlibcomplete::ZLibCompressor Class Reference

ZLib compression class using std::string for input and output. More...

#include <zlibmisc.hpp>

Inheritance diagram for zlibcomplete::ZLibCompressor:

Public Member Functions

 ZLibCompressor (int level=9, flush_parameter autoFlush=auto_flush, int windowBits=15)
 
 ~ZLibCompressor (void)
 
std::string compress (const std::string &input)
 Compresses data. Uses std::string for input and output. More...
 
std::string finish (void)
 Writes a termination block to the zlib stream indicating the end. More...
 

Detailed Description

ZLib compression class using std::string for input and output.

Implements zlib compression using std::string for input and output. To use, simply call compress() zero or more times and then call finish(). This class implements RFC 1950.

Constructor & Destructor Documentation

zlibcomplete::ZLibCompressor::ZLibCompressor ( int  level = 9,
flush_parameter  autoFlush = auto_flush,
int  windowBits = 15 
)

Accepts the standard three parameters for compression constructors.

Parameters
levelCompression level 1-9, defaulting to 9, the best compression.
flush_parameterFlush mode, either auto_flush or no_flush, defaulting to auto_flush mode.
window_bitsSize of history window between 8 and 15, defaulting to 15.
zlibcomplete::ZLibCompressor::~ZLibCompressor ( void  )

Member Function Documentation

std::string zlibcomplete::ZLibCompressor::compress ( const std::string &  input)

Compresses data. Uses std::string for input and output.

Accepts a std::string of any size containing data to compress. Returns as much zlib compressed data as possible. In auto_flush mode, this will ensure that the returned data is immediately decompressible to the original data. In no_flush mode, the data may not all be available until the rest of the compressed data is written using more compress() or a finish() call. After calling compress() zero or more times, it is necessary to call finish() exactly once.

Parameters
inputAny amount of data to compress.
Return values
std::stringcontaining compressed data.
std::string zlibcomplete::ZLibCompressor::finish ( void  )

Writes a termination block to the zlib stream indicating the end.

Flushes any remaining data that has not yet been written and then writes a terminal block to the compressed data stream. Returns this compressed data as a std::string. This function should be called exactly once for each compressed data stream.

Return values
std::stringcontaining the last piece of compressed data.

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