Compresses data and serializes it to an associated std::streambuf.
More...
#include <rw/tools/cmpstream.h>
|
| RWCompressedOStream (std::ostream &stream, std::ios_base::openmode mode=std::ios_base::out, rwuint32 block_size=2048U, const Compressor &compressor=Compressor()) |
|
| RWCompressedOStream (std::streambuf *stream_buffer, std::ios_base::openmode mode=std::ios_base::out, rwuint32 block_size=2048U, const Compressor &compressor=Compressor()) |
|
void | close () |
|
const Compressor & | get_compressor () const |
|
bool | is_open () const |
|
void | open (std::streambuf *stream_buffer, std::ios_base::openmode mode=std::ios_base::out, rwuint32 block_size=2048U) |
|
RWCompressedStreamBuffer< Compressor > * | rdbuf () const |
|
template<class Compressor>
class RWCompressedOStream< Compressor >
Class RWCompressedOStream compresses data and serializes it to an associated std::streambuf. The results can be restored by using its counterpart RWCompressedIStream.
- See also
- RWCompressedStreamBuffer
- Note
- RWCompressedOStream can be interrogated as to the stream state using member functions std::ios::good(), std::ios::bad(), std::ios::eof(), etc.
- Synopsis
#include <rw/tools/cmpstream.h>
Compresses data and serializes it to an associated std::streambuf.
Definition cmpstream.h:95
- Persistence
- None
- Example
#include <rw/tools/cmpstream.h>
#include <rw/estream.h>
#include <rw/cstring.h>
#include <rw/tools/snappy/RWSnappyCompressor.h>
#include <fstream>
int main() {
std::ofstream output_file("output.snap", std::ios_base::binary);
endian_stream << data;
return 0;
}
Offers powerful and convenient facilities for manipulating strings.
Definition stdcstring.h:826
Specializes the base class RWbostream to store values in a portable binary format.
Definition estream.h:84
◆ RWCompressedOStream() [1/2]
template<class Compressor >
RWCompressedOStream< Compressor >::RWCompressedOStream |
( |
std::streambuf * | stream_buffer, |
|
|
std::ios_base::openmode | mode = std::ios_base::out, |
|
|
rwuint32 | block_size = 2048U, |
|
|
const Compressor & | compressor = Compressor() ) |
|
inline |
Constructor initializes and opens the underlying stream buffer with the provided stream_buffer, mode, block_size, and compressor. If the open fails, failbit is set on this stream.
- Note
- The mode is always combined with the appropriate flags to allow the underlying stream buffer to be used for output.
- See also
- RWCompressedStreamBuffer::open()
◆ RWCompressedOStream() [2/2]
template<class Compressor >
RWCompressedOStream< Compressor >::RWCompressedOStream |
( |
std::ostream & | stream, |
|
|
std::ios_base::openmode | mode = std::ios_base::out, |
|
|
rwuint32 | block_size = 2048U, |
|
|
const Compressor & | compressor = Compressor() ) |
|
inline |
Constructor initializes and opens the underlying stream buffer with the provided mode, block_size, compressor, and the stream buffer associated with stream. If the open fails, failbit is set on this stream.
- Note
- The mode is always combined with the appropriate flags to allow the underlying stream buffer to be used for output.
- See also
- RWCompressedStreamBuffer::open()
◆ close()
template<class Compressor >
Closes the underlying stream buffer. If the close fails, failbit is set on this stream. After this method has been called, this stream cannot be used for output until a successful call to open() has been made.
◆ get_compressor()
template<class Compressor >
Returns a reference to the underlying stream buffer's compressor.
◆ is_open()
template<class Compressor >
Returns true
if the underlying stream buffer is open and is ready for use, otherwise returns false
.
◆ open()
template<class Compressor >
void RWCompressedOStream< Compressor >::open |
( |
std::streambuf * | stream_buffer, |
|
|
std::ios_base::openmode | mode = std::ios_base::out, |
|
|
rwuint32 | block_size = 2048U ) |
|
inline |
Opens the underlying stream buffer with the provided stream_buffer, mode, and block_size. If the open fails, failbit is set on this stream.
- Note
- The mode is always combined with the appropriate flags to allow the underlying stream buffer to be used for output.
- See also
- RWCompressedStreamBuffer::open()
◆ rdbuf()
template<class Compressor >
Returns a pointer to the underlying stream buffer.