Deserializes and decompresses data from an associated std::streambuf.
More...
#include <rw/tools/cmpstream.h>
|
| RWCompressedIStream (std::streambuf *stream_buffer, std::ios_base::openmode mode=std::ios_base::in, rwuint32 block_size=2048U, const Compressor &compressor=Compressor()) |
|
| RWCompressedIStream (std::istream &stream, 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>
- 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;
}
Program output:
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
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()
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()
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.
template<class Compressor>
Returns a reference to the underlying stream buffer's compressor.
template<class Compressor>
Returns true
if the underlying stream buffer is open and is ready for use, otherwise returns false
.
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()
template<class Compressor>
Returns a pointer to the underlying stream buffer.