Loading...
Searching...
No Matches
Ogre::DeflateStream Class Reference

Stream which compresses / uncompresses data using the 'deflate' compression algorithm. More...

`#include <OgreDeflate.h>`

Inheritance diagram for Ogre::DeflateStream:
[legend]

## Public Types

enum | StreamType { Invalid = -1 , Deflate = 0 , ZLib = 1 , GZip = 2 }
| Requested stream type. More...
Public Types inherited from Ogre::DataStream
enum | AccessMode { READ = 1 , WRITE = 2 }

## Public Member Functions

| DeflateStream (const DataStreamPtr &compressedStream, const String &tmpFileName="", size_t avail_in=0)
| Constructor for creating unnamed stream wrapping another stream.
| DeflateStream (const String &name, const DataStreamPtr &compressedStream, const String &tmpFileName="", size_t avail_in=0)
| Constructor for creating named stream wrapping another stream.
| DeflateStream (const String &name, const DataStreamPtr &compressedStream, StreamType streamType, const String &tmpFileName="", size_t avail_in=0)
| Constructor for creating named stream wrapping another stream.
| ~DeflateStream ()
void | close (void) override
| Close the stream; this makes further operations invalid.
bool | eof (void) const override
| Returns true if the stream has reached the end.
bool | isCompressedStreamValid () const
| Returns whether the compressed stream is valid deflated data.
size_t | read (void *buf, size_t count) override
| Read the requisite number of bytes from the stream, stopping at the end of the file.
void | seek (size_t pos) override
| Repositions the read point to a specified byte.
void | skip (long count) override
| Skip a defined number of bytes.
size_t | tell (void) const override
| Returns the current byte offset from beginning.
size_t | write (const void *buf, size_t count) override
| Write the requisite number of bytes from the stream (only applicable to streams that are not read-only).
Public Member Functions inherited from Ogre::DataStream
| DataStream (const String &name, uint16 accessMode=READ)
| Constructor for creating named streams.
| DataStream (uint16 accessMode=READ)
| Constructor for creating unnamed streams.
virtual | ~DataStream ()
uint16 | getAccessMode () const
| Gets the access mode of the stream.
virtual String | getAsString (void)
| Returns a String containing the entire stream.
virtual String | getLine (bool trimAfter=true)
| Returns a String containing the next line of data, optionally trimmed for whitespace.
const String & | getName (void)
| Returns the name of the stream, if it has one.
virtual bool | isReadable () const
| Reports whether this stream is readable.
virtual bool | isWriteable () const
| Reports whether this stream is writeable.
template<typename T>
DataStream & | operator>> (T &val)
virtual size_t | readLine (char *buf, size_t maxCount, const String &delim="\n")
| Get a single line from the stream.
size_t | size (void) const
| Returns the total size of the data to be read from the stream, or 0 if this is indeterminate for this stream.
virtual size_t | skipLine (const String &delim="\n")
| Skip a single line from the stream.

## Detailed Description

Stream which compresses / uncompresses data using the 'deflate' compression algorithm.

This stream is designed to wrap another stream for the actual source / destination of the compressed data, it has no concrete source / data itself. The idea is that you pass uncompressed data through this stream, and the underlying stream reads/writes compressed data to the final source.

Note
  This is an alternative to using a compressed archive since it is able to compress & decompress regardless of the actual source of the stream. You should avoid using this with already compressed archives. Also note that this cannot be used as a read / write stream, only a read-only or write-only stream.

## Member Enumeration Documentation

## StreamType

enum Ogre::DeflateStream::StreamType

Requested stream type.

All are essentially the same deflate stream with varying wrapping. ZLib is used by default.

Enumerator
Invalid |
Deflate | Unexpected stream type or uncompressed data.
ZLib | no header, no checksum, rfc1951
GZip | 2 byte header, 4 byte footer with adler32 checksum, rfc1950

## Constructor & Destructor Documentation

## DeflateStream() [1/3]

Ogre::DeflateStream::DeflateStream | ( | const DataStreamPtr & | compressedStream,
|  | const String & | tmpFileName = "",
|  | size_t | avail_in = 0 )

Constructor for creating unnamed stream wrapping another stream.

Parameters

  compressedStream | The stream that this stream will use when reading / writing compressed data. The access mode from this stream will be matched.
  tmpFileName | Path/Filename to be used for temporary storage of incoming data
  avail_in | Available data length to be uncompressed. With it we can uncompress DataStream partly.

## DeflateStream() [2/3]

Ogre::DeflateStream::DeflateStream | ( | const String & | name,
|  | const DataStreamPtr & | compressedStream,
|  | const String & | tmpFileName = "",
|  | size_t | avail_in = 0 )

Constructor for creating named stream wrapping another stream.

Parameters

  name | The name to give this stream
  compressedStream | The stream that this stream will use when reading / writing compressed data. The access mode from this stream will be matched.
  tmpFileName | Path/Filename to be used for temporary storage of incoming data
  avail_in | Available data length to be uncompressed. With it we can uncompress DataStream partly.

## DeflateStream() [3/3]

Ogre::DeflateStream::DeflateStream | ( | const String & | name,
|  | const DataStreamPtr & | compressedStream,
|  | StreamType | streamType,
|  | const String & | tmpFileName = "",
|  | size_t | avail_in = 0 )

Constructor for creating named stream wrapping another stream.

Parameters

  name | The name to give this stream
  compressedStream | The stream that this stream will use when reading / writing compressed data. The access mode from this stream will be matched.
  streamType | The type of compressed stream
  tmpFileName | Path/Filename to be used for temporary storage of incoming data
  avail_in | Available data length to be uncompressed. With it we can uncompress DataStream partly.

## ~DeflateStream()

Ogre::DeflateStream::~DeflateStream | ( |  | ) |

## Member Function Documentation

## isCompressedStreamValid()

bool Ogre::DeflateStream::isCompressedStreamValid | ( |  | ) | const

inline

Returns whether the compressed stream is valid deflated data.

If you pass this class a READ stream which is not compressed with the deflate algorithm, this method returns false and all read commands will actually be executed as passthroughs as a fallback.

References Invalid.

## read()

size_t Ogre::DeflateStream::read | ( | void * | buf,
|  | size_t | count )

override virtual

Read the requisite number of bytes from the stream, stopping at the end of the file.

Parameters

  buf | Reference to a buffer pointer
  count | Number of bytes to read

Returns
  The number of bytes read

Implements Ogre::DataStream.

## write()

size_t Ogre::DeflateStream::write | ( | const void * | buf,
|  | size_t | count )

override virtual

Write the requisite number of bytes from the stream (only applicable to streams that are not read-only).

Parameters

  buf | Pointer to a buffer containing the bytes to write
  count | Number of bytes to write

Returns
  The number of bytes written

Reimplemented from Ogre::DataStream.

## skip()

void Ogre::DeflateStream::skip | ( | long | count | ) |

override virtual

Skip a defined number of bytes.

This can also be a negative value, in which case the file pointer rewinds a defined number of bytes.

Implements Ogre::DataStream.

## seek()

void Ogre::DeflateStream::seek | ( | size_t | pos | ) |

override virtual

Repositions the read point to a specified byte.

Implements Ogre::DataStream.

## tell()

size_t Ogre::DeflateStream::tell | ( | void |  | ) | const

override virtual

Returns the current byte offset from beginning.

Implements Ogre::DataStream.

## eof()

bool Ogre::DeflateStream::eof | ( | void |  | ) | const

override virtual

Returns true if the stream has reached the end.

Implements Ogre::DataStream.

## close()

void Ogre::DeflateStream::close | ( | void |  | ) |

override virtual

Close the stream; this makes further operations invalid.

Implements Ogre::DataStream.

The documentation for this class was generated from the following file:

- OgreDeflate.h