# Ogre::ZipDataStream Class Reference
Resources

Dummy version of cache to test no caching. More...

`#include <OgreZip.h>`

Inheritance diagram for Ogre::ZipDataStream:
[legend]

List of all members.

## Public Types

enum | AccessMode { READ = 1, WRITE = 2 }

## 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)
size_t | write (void *buf, size_t count)
void | skip (long count)
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.
uint16 | getAccessMode () const
| Gets the access mode of the stream.
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 | write (const void *buf, size_t count)
| Write the requisite number of bytes from the stream (only applicable to streams that are not read-only)
virtual size_t | readLine (char *buf, size_t maxCount, const String &delim="\n")
| Get a single line from the stream.
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.
virtual size_t | skipLine (const String &delim="\n")
| Skip 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.
void * | operator new (size_t sz, const char *file, int line, const char *func)
| operator new, with debug line info
void * | operator new (size_t sz)
void * | operator new (size_t sz, void *ptr)
| placement operator new
void * | operator new[] (size_t sz, const char *file, int line, const char *func)
| array operator new, with debug line info
void * | operator new[] (size_t sz)
void | operator delete (void *ptr)
void | operator delete (void *ptr, void *)
void | operator delete (void *ptr, const char *, int, const char *)
void | operator delete[] (void *ptr)
void | operator delete[] (void *ptr, const char *, int, const char *)

## Protected Attributes

ZZIP_FILE * | mZzipFile
StaticCache < 2 *OGRE_STREAM_TEMP_SIZE > | mCache
| We need caching because sometimes serializers step back in data stream and zziplib behaves slow.
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)
uint16 | mAccess
| What type of access is allowed (AccessMode)

## Detailed Description

Dummy version of cache to test no caching.

If you want to test, just uncomment it and add 'No' prefix to type in line 'StaticCache<2 * OGRE_STREAM_TEMP_SIZE> mCache;' of class ZipDataStream Specialisation of DataStream to handle streaming data from zip archives.

Definition at line 253 of file OgreZip.h.

## Member Enumeration Documentation

enum Ogre::DataStream::AccessMode`[inherited]`

Enumerator:

  READ |
  WRITE |

Definition at line 66 of file OgreDataStream.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]`

Close the stream; this makes further operations invalid.

Implements Ogre::DataStream.

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

Returns true if the stream has reached the end.

Implements Ogre::DataStream.

uint16 Ogre::DataStream::getAccessMode | ( |  | ) | const`[inherited]`

Gets the access mode of the stream.

Definition at line 89 of file OgreDataStream.h.

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.

Note:
  If you used this function, you must open the stream in binary mode, otherwise, it'll produce unexpected results.

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 87 of file OgreDataStream.h.

virtual bool Ogre::DataStream::isReadable | ( |  | ) | const`[virtual, inherited]`

Reports whether this stream is readable.

Definition at line 91 of file OgreDataStream.h.

virtual bool Ogre::DataStream::isWriteable | ( |  | ) | const`[virtual, inherited]`

Reports whether this stream is writeable.

Definition at line 93 of file OgreDataStream.h.

template<class Alloc >

void Ogre::AllocatedObject< Alloc >::operator delete | ( | void * | ptr | ) | `[inherited]`

Definition at line 95 of file OgreMemoryAllocatedObject.h.

template<class Alloc >

void Ogre::AllocatedObject< Alloc >::operator delete | ( | void * | ptr,
|  | void * |
| ) |  | `[inherited]`

Definition at line 101 of file OgreMemoryAllocatedObject.h.

template<class Alloc >

void Ogre::AllocatedObject< Alloc >::operator delete | ( | void * | ptr,
|  | const char * | ,
|  | int | ,
|  | const char * |
| ) |  | `[inherited]`

Definition at line 107 of file OgreMemoryAllocatedObject.h.

template<class Alloc >

void Ogre::AllocatedObject< Alloc >::operator delete[] | ( | void * | ptr | ) | `[inherited]`

Definition at line 112 of file OgreMemoryAllocatedObject.h.

template<class Alloc >

void Ogre::AllocatedObject< Alloc >::operator delete[] | ( | void * | ptr,
|  | const char * | ,
|  | int | ,
|  | const char * |
| ) |  | `[inherited]`

Definition at line 118 of file OgreMemoryAllocatedObject.h.

template<class Alloc >

void* Ogre::AllocatedObject< Alloc >::operator new | ( | size_t | sz,
|  | const char * | file,
|  | int | line,
|  | const char * | func
| ) |  | `[inherited]`

operator new, with debug line info

Definition at line 67 of file OgreMemoryAllocatedObject.h.

template<class Alloc >

void* Ogre::AllocatedObject< Alloc >::operator new | ( | size_t | sz | ) | `[inherited]`

Definition at line 72 of file OgreMemoryAllocatedObject.h.

template<class Alloc >

void* Ogre::AllocatedObject< Alloc >::operator new | ( | size_t | sz,
|  | void * | ptr
| ) |  | `[inherited]`

placement operator new

Definition at line 78 of file OgreMemoryAllocatedObject.h.

template<class Alloc >

void* Ogre::AllocatedObject< Alloc >::operator new[] | ( | size_t | sz,
|  | const char * | file,
|  | int | line,
|  | const char * | func
| ) |  | `[inherited]`

array operator new, with debug line info

Definition at line 85 of file OgreMemoryAllocatedObject.h.

template<class Alloc >

void* Ogre::AllocatedObject< Alloc >::operator new[] | ( | size_t | sz | ) | `[inherited]`

Definition at line 90 of file OgreMemoryAllocatedObject.h.

template<typename T >

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

size_t Ogre::ZipDataStream::read | ( | void * | buf,
|  | size_t | count
| ) |  | `[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.

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

Get a single line from the stream.

Remarks:
  The delimiter character is not included in the data returned, and it is skipped over so the next read will occur after it. The buffer contents will include a terminating character.

Note:
  If you used this function, you must open the stream in binary mode, otherwise, it'll produce unexpected results.

Parameters:

  buf | Reference to a buffer pointer
  maxCount | The maximum length of data to be read, excluding the terminating character
  delim | The delimiter to stop at

Returns:
  The number of bytes read, excluding the terminating character

Reimplemented in Ogre::MemoryDataStream, and Ogre::FileStreamDataStream.

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

Repositions the read point to a specified byte.

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 184 of file OgreDataStream.h.

void Ogre::ZipDataStream::skip | ( | long | count | ) | `[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.

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

Skip a single line from the stream.

Note:
  If you used this function, you must open the stream in binary mode, otherwise, it'll produce unexpected results.

Parameters:

  delim | The delimiter(s) to stop at

Returns:
  The number of bytes skipped

Reimplemented in Ogre::MemoryDataStream.

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

Repositions the read point to a specified byte.

Implements Ogre::DataStream.

virtual size_t Ogre::DataStream::write | ( | const void * | buf,
|  | size_t | count
| ) |  | `[virtual, inherited]`

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 in Ogre::MemoryDataStream, Ogre::FileStreamDataStream, and Ogre::FileHandleDataStream.

Definition at line 110 of file OgreDataStream.h.

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

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

## Member Data Documentation

uint16 Ogre::DataStream::mAccess`[protected, inherited]`

What type of access is allowed (AccessMode)

Definition at line 77 of file OgreDataStream.h.

StaticCache<2 * OGRE_STREAM_TEMP_SIZE> Ogre::ZipDataStream::mCache`[protected]`

We need caching because sometimes serializers step back in data stream and zziplib behaves slow.

Definition at line 258 of file OgreZip.h.

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 73 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 75 of file OgreDataStream.h.

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

Definition at line 256 of file OgreZip.h.

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

- OgreZip.h

Copyright © 2008 Torus Knot Software Ltd
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
Last modified Sun May 8 2011 20:28:20