Deserializes and decompresses data from an associated std::streambuf.
More...
#include <rw/tools/cmpstream.h>
|
| RWCompressedIStream (std::istream &stream, std::ios_base::openmode mode=std::ios_base::in, rwuint32 block_size=2048U, const Compressor &compressor=Compressor()) |
|
| RWCompressedIStream (std::streambuf *stream_buffer, std::ios_base::openmode mode=std::ios_base::in, 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::in, rwuint32 block_size=2048U) |
|
RWCompressedStreamBuffer< Compressor > * | rdbuf () const |
|
template<class Compressor>
class RWCompressedIStream< Compressor >
Class RWCompressedIStream deserializes and decompresses data from an associated std::streambuf. The data on that streambuf must have been serialized with its counterpart RWCompressedOStream.
- See also
- RWCompressedStreamBuffer
- Note
- RWCompressedIStream 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>
Deserializes and decompresses data from an associated std::streambuf.
Definition cmpstream.h:302
- 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::ifstream input_file("output.snap", std::ios_base::binary);
endian_stream >> data;
std::cout << data;
return 0;
}
Offers powerful and convenient facilities for manipulating strings.
Definition stdcstring.h:826
Specializes the base class RWbistream to restore values previously stored by RWeostream.
Definition estream.h:380
Program output:
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
◆ RWCompressedIStream() [1/2]
template<class Compressor >
RWCompressedIStream< Compressor >::RWCompressedIStream |
( |
std::streambuf * | stream_buffer, |
|
|
std::ios_base::openmode | mode = std::ios_base::in, |
|
|
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 input.
- See also
- RWCompressedStreamBuffer::open()
◆ RWCompressedIStream() [2/2]
template<class Compressor >
RWCompressedIStream< Compressor >::RWCompressedIStream |
( |
std::istream & | stream, |
|
|
std::ios_base::openmode | mode = std::ios_base::in, |
|
|
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 input.
- 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 input 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 RWCompressedIStream< Compressor >::open |
( |
std::streambuf * | stream_buffer, |
|
|
std::ios_base::openmode | mode = std::ios_base::in, |
|
|
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 input.
- See also
- RWCompressedStreamBuffer::open()
◆ rdbuf()
template<class Compressor >
Returns a pointer to the underlying stream buffer.