zlibcomplete
Simple C++ wrapper for zlib using RAII and std::string with flush.
|
GZip compression class using std::string for input and output. More...
#include <gzipcomplete.hpp>
Public Member Functions | |
GZipCompressor (int level=9, flush_parameter autoFlush=auto_flush, int windowBits=15) | |
std::string | compress (const std::string &input) |
gzip compression main method using std::string for input and output. More... | |
std::string | finish (void) |
Writes a termination block to the gzip stream indicating the end. More... | |
GZip compression class using std::string for input and output.
Implements gzip 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 1952.
zlibcomplete::GZipCompressor::GZipCompressor | ( | int | level = 9 , |
flush_parameter | autoFlush = auto_flush , |
||
int | windowBits = 15 |
||
) |
Accepts the standard three parameters for compression constructors.
level | Compression level 1-9, defaulting to 9, the best compression. |
flush_parameter | Flush mode, either auto_flush or no_flush, defaulting to auto_flush mode. |
window_bits | Size of history window between 8 and 15, defaulting to 15. |
std::string zlibcomplete::GZipCompressor::compress | ( | const std::string & | input | ) |
gzip compression main method using std::string for input and output.
Accepts a std::string of any size containing data to compress. Returns as much gzip 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.
input | Any amount of data to compress. |
std::string | containing compressed data. |
std::string zlibcomplete::GZipCompressor::finish | ( | void | ) |
Writes a termination block to the gzip 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.
std::string | containing the last piece of compressed data. |