# Ogre::ZipDataStream Class Reference

Specialisation of DataStream to handle streaming data from zip archives. More...

`#include <OgreZip.h>`

Inheritance diagram for Ogre::ZipDataStream:

List of all members.

## Public Member Functions

| ZipDataStream (ZZIP_FILE *zzipFile, size_t uncompressedSize)
| Unnamed constructor.
| ZipDataStream (const String &name, ZZIP_FILE *zzipFile, size_t uncompressedSize)
| Constructor for creating named streams.
| ~ZipDataStream ()
size_t | read (void *buf, size_t count)

Parameters:

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

Returns:
  The number of bytes read

size_t | readLine (char *buf, size_t maxCount, const String &delim="\n")

Parameters:

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

Returns:
  The number of bytes read

size_t | skipLine (const String &delim="\n")

Parameters:

  delim | The delimiter(s) to stop at

Returns:
  The number of bytes skipped

void | skip (long count)
| This can also be a negative value, in which case the file pointer rewinds a defined number of bytes.
void | seek (size_t pos)
size_t | tell (void) const
bool | eof (void) const
void | close (void)
const String & | getName (void)
| Returns the name of the stream, if it has one.
template<typename T> DataStream & | operator>> (T &val)
virtual String | getLine (bool trimAfter=true)
| Returns a String containing the next line of data, optionally trimmed for whitespace.
virtual String | getAsString (void)
| Returns a String containing the entire 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.

## Protected Attributes

ZZIP_FILE * | mZzipFile
char | mZipTmpArea [OGRE_STREAM_TEMP_SIZE]
| Temporary zip copy area.
String | mName
| The name (e.g. resource name) that can be used to identify the source fot his data (optional).
size_t | mSize
| Size of the data in the stream (may be 0 if size cannot be determined).
char | mTmpArea [OGRE_STREAM_TEMP_SIZE]
| Temporary buffer area used for formatted read.

## Detailed Description

Specialisation of DataStream to handle streaming data from zip archives.

Definition at line 101 of file OgreZip.h.

## Constructor & Destructor Documentation

Ogre::ZipDataStream::ZipDataStream | ( | ZZIP_FILE * | zzipFile,
|  | size_t | uncompressedSize
| ) |

| Unnamed constructor.

Ogre::ZipDataStream::ZipDataStream | ( | const String & | name,
|  | ZZIP_FILE * | zzipFile,
|  | size_t | uncompressedSize
| ) |

| Constructor for creating named streams.

Ogre::ZipDataStream::~ZipDataStream | ( |  | ) |

## Member Function Documentation

void Ogre::ZipDataStream::close | ( | void |  | ) | `[virtual]`

| Implements Ogre::DataStream.

bool Ogre::ZipDataStream::eof | ( | void |  | ) | const`[virtual]`

| Implements Ogre::DataStream.

virtual String Ogre::DataStream::getAsString | ( | void |  | ) | `[virtual, inherited]`

Returns a String containing the entire stream.

Remarks:
  This is a convenience method for text streams only, allowing you to retrieve a String object containing all the data in the stream.

virtual String Ogre::DataStream::getLine | ( | bool | trimAfter = true | ) | `[virtual, inherited]`

Returns a String containing the next line of data, optionally trimmed for whitespace.

Remarks:
  This is a convenience method for text streams only, allowing you to retrieve a String object containing the next line of data. The data is read up to the next newline character and the result trimmed if required.

Parameters:

  trimAfter | If true, the line is trimmed for whitespace (as in String.trim(true,true))

const String& Ogre::DataStream::getName | ( | void |  | ) | `[inherited]`

| Returns the name of the stream, if it has one. Definition at line 70 of file OgreDataStream.h. References Ogre::String.

template<typename T>
DataStream& Ogre::DataStream::operator>> | ( | T & | val | ) | `[inherited]`

size_t Ogre::ZipDataStream::read | ( | void * | buf,
|  | size_t | count
| ) | `[virtual]`

Parameters:

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

Returns:
  The number of bytes read

Implements Ogre::DataStream.

size_t Ogre::ZipDataStream::readLine | ( | char * | buf,
|  | size_t | maxCount,
|  | const String & | delim = "\n"
| ) | `[virtual]`

Parameters:

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

Returns:
  The number of bytes read

Implements Ogre::DataStream.

void Ogre::ZipDataStream::seek | ( | size_t | pos | ) | `[virtual]`

| Implements Ogre::DataStream.

size_t Ogre::DataStream::size | ( | void |  | ) | const`[inherited]`

| Returns the total size of the data to be read from the stream, or 0 if this is indeterminate for this stream. Definition at line 138 of file OgreDataStream.h.

void Ogre::ZipDataStream::skip | ( | long | count | ) | `[virtual]`

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

size_t Ogre::ZipDataStream::skipLine | ( | const String & | delim = "\n" | ) | `[virtual]`

Parameters:

  delim | The delimiter(s) to stop at

Returns:
  The number of bytes skipped

Implements Ogre::DataStream.

size_t Ogre::ZipDataStream::tell | ( | void |  | ) | const`[virtual]`

| Implements Ogre::DataStream.

## Member Data Documentation

String Ogre::DataStream::mName `[protected, inherited]`

| The name (e.g. resource name) that can be used to identify the source fot his data (optional). Definition at line 58 of file OgreDataStream.h.

size_t Ogre::DataStream::mSize `[protected, inherited]`

| Size of the data in the stream (may be 0 if size cannot be determined). Definition at line 60 of file OgreDataStream.h.

char Ogre::DataStream::mTmpArea[OGRE_STREAM_TEMP_SIZE]`[protected, inherited]`

| Temporary buffer area used for formatted read. Definition at line 63 of file OgreDataStream.h.

char Ogre::ZipDataStream::mZipTmpArea[OGRE_STREAM_TEMP_SIZE]`[protected]`

| Temporary zip copy area. Definition at line 106 of file OgreZip.h.

ZZIP_FILE* Ogre::ZipDataStream::mZzipFile `[protected]`

| Definition at line 104 of file OgreZip.h.

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

- OgreZip.h

Copyright © 2000-2005 by The OGRE Team
This work is licensed under a Creative Commons Attribution-ShareAlike 2.5 License.
Last modified Sun Feb 12 13:05:06 2006