# Ogre::FileHandleDataStream Class Reference

Common subclass of DataStream for handling data from C-style file handles. More...

`#include <OgreDataStream.h>`

Inheritance diagram for Ogre::FileHandleDataStream:
[legend]

List of all members.

## Public Member Functions

| FileHandleDataStream (FILE *handle)
| Create stream from a C file handle.
| FileHandleDataStream (const String &name, FILE *handle)
| Create named stream from a C file handle.
| ~FileHandleDataStream ()
size_t | read (void *buf, size_t count)

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

void | skip (long count)
| 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.
void | seek (size_t pos)
| Repositions the read point to a specified byte.
size_t | tell (void) const
| Returns the current byte offset from beginning.
bool | eof (void) const
| Returns true if the stream has reached the end.
void | close (void)
| Close the stream; this makes further operations invalid.
const String & | getName (void)
| Returns the name of the stream, if it has one.
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.
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.

## Protected Attributes

FILE * | mFileHandle
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).

## Detailed Description

Common subclass of DataStream for handling data from C-style file handles.

Remarks:
  Use of this class is generally discouraged; if you want to wrap file access in a DataStream, you should definitely be using the C++ friendly FileStreamDataStream. However, since there are quite a few applications and libraries still wedded to the old FILE handle access, this stream wrapper provides some backwards compatibility.

Definition at line 404 of file OgreDataStream.h.

## Constructor & Destructor Documentation

Ogre::FileHandleDataStream::FileHandleDataStream | ( | FILE * | handle | ) |

Create stream from a C file handle.

Ogre::FileHandleDataStream::FileHandleDataStream | ( | const String & | name,
|  | FILE * | handle |
| ) |  |  |

Create named stream from a C file handle.

Ogre::FileHandleDataStream::~FileHandleDataStream | ( |  | ) |

## Member Function Documentation

size_t Ogre::FileHandleDataStream::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.

void Ogre::FileHandleDataStream::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.

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

Repositions the read point to a specified byte.

Implements Ogre::DataStream.

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

Returns the current byte offset from beginning.

Implements Ogre::DataStream.

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

Returns true if the stream has reached the end.

Implements Ogre::DataStream.

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

Close the stream; this makes further operations invalid.

Implements Ogre::DataStream.

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

Returns the name of the stream, if it has one.

Definition at line 72 of file OgreDataStream.h.

template<typename T>

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

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.

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))

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

## Member Data Documentation

FILE* Ogre::FileHandleDataStream::mFileHandle`[protected]`

Definition at line 407 of file OgreDataStream.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 62 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 64 of file OgreDataStream.h.

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

- OgreDataStream.h

Copyright © 2000-2005 by The OGRE Team
This work is licensed under a Creative Commons Attribution-ShareAlike 2.5 License.
Last modified Sat May 10 16:25:38 2008