Rosetta
|
A stream decorator that takes raw input and zips it to a ostream. More...
#include <zipstream.hpp>
Public Types | |
typedef std::basic_streambuf< Elem, Tr > | basic_streambuf_type |
typedef std::basic_ostream< Elem, Tr > & | ostream_reference |
typedef Elem | char_type |
typedef ElemA | char_allocator_type |
typedef ByteT | byte_type |
typedef ByteAT | byte_allocator_type |
typedef byte_type * | byte_buffer_type |
typedef std::vector< byte_type, byte_allocator_type > | byte_vector_type |
typedef std::vector< char_type, char_allocator_type > | char_vector_type |
typedef Tr | traits_type |
typedef Tr::int_type | int_type |
Public Member Functions | |
basic_zip_streambuf (ostream_reference ostream_, size_t level_, EStrategy strategy_, size_t window_size_, size_t memory_level_, size_t buffer_size_) | |
Construct a zip stream. More... | |
~basic_zip_streambuf () override | |
int | sync () override |
int_type | overflow (int_type c) override |
std::streamsize | flush () |
flushes the zip buffer and output buffer More... | |
std::streamsize | flush_finalize () |
flushes the zip buffer and output buffer and finalize the zip stream More... | |
void | reset_state () |
resets the zip stream and zeros the crc More... | |
ostream_reference | get_ostream () const |
returns a reference to the output stream More... | |
int | get_zerr () const |
returns the latest zlib error status More... | |
uLong | get_crc () const |
returns the crc of the input data compressed so far More... | |
uLong | get_in_size () const |
returns the size (bytes) of the input data compressed so far More... | |
uLong | get_out_size () const |
returns the size (bytes) of the compressed data so far More... | |
Private Member Functions | |
bool | zip_to_stream (char_type *, std::streamsize) |
size_t | fill_input_buffer () |
std::streamsize | flush (int flush_mode) |
flush the zip buffer using a particular mode and flush output buffer More... | |
Private Attributes | |
ostream_reference | m_ostream |
z_stream | m_zip_stream |
int | m_err |
byte_vector_type | m_output_buffer |
char_vector_type | m_buffer |
uLong | m_crc |
A stream decorator that takes raw input and zips it to a ostream.
typedef std::basic_streambuf< Elem, Tr > zlib_stream::basic_zip_streambuf< Elem, Tr, ElemA, ByteT, ByteAT >::basic_streambuf_type |
typedef ByteAT zlib_stream::basic_zip_streambuf< Elem, Tr, ElemA, ByteT, ByteAT >::byte_allocator_type |
typedef byte_type* zlib_stream::basic_zip_streambuf< Elem, Tr, ElemA, ByteT, ByteAT >::byte_buffer_type |
typedef ByteT zlib_stream::basic_zip_streambuf< Elem, Tr, ElemA, ByteT, ByteAT >::byte_type |
typedef std::vector< byte_type, byte_allocator_type > zlib_stream::basic_zip_streambuf< Elem, Tr, ElemA, ByteT, ByteAT >::byte_vector_type |
typedef ElemA zlib_stream::basic_zip_streambuf< Elem, Tr, ElemA, ByteT, ByteAT >::char_allocator_type |
typedef Elem zlib_stream::basic_zip_streambuf< Elem, Tr, ElemA, ByteT, ByteAT >::char_type |
typedef std::vector< char_type, char_allocator_type > zlib_stream::basic_zip_streambuf< Elem, Tr, ElemA, ByteT, ByteAT >::char_vector_type |
typedef Tr::int_type zlib_stream::basic_zip_streambuf< Elem, Tr, ElemA, ByteT, ByteAT >::int_type |
typedef std::basic_ostream< Elem, Tr >& zlib_stream::basic_zip_streambuf< Elem, Tr, ElemA, ByteT, ByteAT >::ostream_reference |
typedef Tr zlib_stream::basic_zip_streambuf< Elem, Tr, ElemA, ByteT, ByteAT >::traits_type |
zlib_stream::basic_zip_streambuf< Elem, Tr, ElemA, ByteT, ByteAT >::basic_zip_streambuf | ( | ostream_reference | ostream_, |
size_t | level_, | ||
EStrategy | strategy_, | ||
size_t | window_size_, | ||
size_t | memory_level_, | ||
size_t | buffer_size_ | ||
) |
Construct a zip stream.
References zlib_stream::basic_zip_streambuf< Elem, Tr, ElemA, ByteT, ByteAT >::m_buffer, zlib_stream::basic_zip_streambuf< Elem, Tr, ElemA, ByteT, ByteAT >::m_err, zlib_stream::basic_zip_streambuf< Elem, Tr, ElemA, ByteT, ByteAT >::m_zip_stream, and min().
|
override |
|
private |
std::streamsize zlib_stream::basic_zip_streambuf< Elem, Tr, ElemA, ByteT, ByteAT >::flush |
flushes the zip buffer and output buffer
Referenced by zlib_stream::basic_zip_ostream< Elem, Tr, ElemA, ByteT, ByteAT >::zflush().
|
private |
flush the zip buffer using a particular mode and flush output buffer
References numeric::remainder().
std::streamsize zlib_stream::basic_zip_streambuf< Elem, Tr, ElemA, ByteT, ByteAT >::flush_finalize |
flushes the zip buffer and output buffer and finalize the zip stream
This method should be called at the end of the compression.
Referenced by zlib_stream::basic_zip_ostream< Elem, Tr, ElemA, ByteT, ByteAT >::zflush_finalize().
|
inline |
returns the crc of the input data compressed so far
References zlib_stream::basic_zip_streambuf< Elem, Tr, ElemA, ByteT, ByteAT >::m_crc.
Referenced by zlib_stream::basic_zip_ostreambase< Elem, Tr, ElemA, ByteT, ByteAT >::get_crc().
|
inline |
returns the size (bytes) of the input data compressed so far
References zlib_stream::basic_zip_streambuf< Elem, Tr, ElemA, ByteT, ByteAT >::m_zip_stream.
Referenced by zlib_stream::basic_zip_ostreambase< Elem, Tr, ElemA, ByteT, ByteAT >::get_in_size().
|
inline |
returns a reference to the output stream
References zlib_stream::basic_zip_streambuf< Elem, Tr, ElemA, ByteT, ByteAT >::m_ostream.
|
inline |
returns the size (bytes) of the compressed data so far
References zlib_stream::basic_zip_streambuf< Elem, Tr, ElemA, ByteT, ByteAT >::m_zip_stream.
Referenced by zlib_stream::basic_zip_ostreambase< Elem, Tr, ElemA, ByteT, ByteAT >::get_out_size().
|
inline |
returns the latest zlib error status
References zlib_stream::basic_zip_streambuf< Elem, Tr, ElemA, ByteT, ByteAT >::m_err.
|
override |
void zlib_stream::basic_zip_streambuf< Elem, Tr, ElemA, ByteT, ByteAT >::reset_state |
resets the zip stream and zeros the crc
This method should be called after flush_finalize() @deatils to allow future writes
Referenced by zlib_stream::basic_zip_ostream< Elem, Tr, ElemA, ByteT, ByteAT >::reset_zip_stream().
|
override |
|
private |
References numeric::remainder().
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |