# Cinder

# cinder::IStreamFile Class Reference

`#include <Stream.h>`

Inherits cinder::IStream.

List of all members.

## Public Types
enum | Endianness { STREAM_BIG_ENDIAN, STREAM_LITTLE_ENDIAN }
## Public Member Functions
| ~IStreamFile ()
size_t | readDataAvailable (void *dest, size_t maxSize)
void | seekAbsolute (off_t absoluteOffset)
| Sets the current position of the stream to byte absoluteOffset. A negative offset is relative to the end of the file.
void | seekRelative (off_t relativeOffset)
| Moves the current position of the stream by relativeOffset bytes.
off_t | tell () const
| Returns the current position of the stream measured in bytes **/.
off_t | size () const
bool | isEof () const
FILE * | getFILE ()
template<typename T >
void | read (T *t)
template<typename T >
void | readEndian (T *t, uint8_t endian)
template<typename T >
void | readBig (T *t)
template<typename T >
void | readLittle (T *t)
void | readFixedString (char *t, size_t maxSize, bool nullTerminate)
void | readFixedString (std::string *t, size_t size)
std::string | readLine ()
void | readData (void *dest, size_t size)
const std::string & | getFileName () const
| Returns the file name of the path from which a Stream originated when relevant. Empty string when undefined.
void | setFileName (const std::string &aFileName)
| Sets the file name of the path from which a Stream originated when relevant. Empty string when undefined.
## Static Public Member Functions
static IStreamFileRef | createRef (FILE *file, bool ownsFile=true, int32_t defaultBufferSize=2048)
| Creates a new IStreamFileRef from a C-style file pointer FILE as returned by fopen(). If ownsFile the returned stream will destroy the stream upon its own destruction.
static uint8_t | getNativeEndianness ()
## Public Attributes
return | STREAM_BIG_ENDIAN
## Protected Member Functions
| IStreamFile (FILE *aFile, bool aOwnsFile=true, int32_t aDefaultBufferSize=2048)
virtual void | IORead (void *t, size_t size)
## Protected Attributes
FILE * | mFile
bool | mOwnsFile
size_t | mBufferSize
size_t | mDefaultBufferSize
shared_ptr< uint8_t > | mBuffer
off_t | mBufferOffset
off_t | mBufferFileOffset
off_t | mSize
bool | mSizeCached
std::string | mFileName
## Static Protected Attributes
static const int | MINIMUM_BUFFER_SIZE = 8

## Member Enumeration Documentation

enum cinder::StreamBase::Endianness`[inherited]`

Enumerator:

  STREAM_BIG_ENDIAN |
  STREAM_LITTLE_ENDIAN |

## Constructor & Destructor Documentation

cinder::IStreamFile::~IStreamFile | ( |  | ) |

cinder::IStreamFile::IStreamFile | ( | FILE * | aFile,
|  | bool | aOwnsFile = `true`,
|  | int32_t | aDefaultBufferSize = `2048` |
| ) |  |  | `[protected]`

## Member Function Documentation

IStreamFileRef cinder::IStreamFile::createRef | ( | FILE * | file,
|  | bool | ownsFile = `true`,
|  | int32_t | defaultBufferSize = `2048` |
| ) |  |  | `[static]`

Creates a new IStreamFileRef from a C-style file pointer FILE as returned by fopen(). If ownsFile the returned stream will destroy the stream upon its own destruction.

size_t cinder::IStreamFile::readDataAvailable | ( | void * | dest,
|  | size_t | maxSize |
| ) |  |  | `[virtual]`

Implements cinder::IStream.

void cinder::IStreamFile::seekAbsolute | ( | off_t | absoluteOffset | ) | `[virtual]`

Sets the current position of the stream to byte absoluteOffset. A negative offset is relative to the end of the file.

Implements cinder::StreamBase.

void cinder::IStreamFile::seekRelative | ( | off_t | relativeOffset | ) | `[virtual]`

Moves the current position of the stream by relativeOffset bytes.

Implements cinder::StreamBase.

off_t cinder::IStreamFile::tell | ( |  | ) | const`[virtual]`

Returns the current position of the stream measured in bytes **/.

Implements cinder::StreamBase.

off_t cinder::IStreamFile::size | ( |  | ) | const`[virtual]`

Implements cinder::IStream.

bool cinder::IStreamFile::isEof | ( |  | ) | const`[virtual]`

Implements cinder::IStream.

FILE* cinder::IStreamFile::getFILE | ( |  | ) |

void cinder::IStreamFile::IORead | ( | void * | t,
|  | size_t | size |
| ) |  |  | `[protected, virtual]`

Implements cinder::IStream.

template<typename T >

void cinder::IStream::read | ( | T * | t | ) | `[inherited]`

template<typename T >

void cinder::IStream::readEndian | ( | T * | t,
|  | uint8_t | endian |
| ) |  |  | `[inherited]`

template<typename T >

void cinder::IStream::readBig | ( | T * | t | ) | `[inherited]`

template<typename T >

void cinder::IStream::readLittle | ( | T * | t | ) | `[inherited]`

void cinder::IStream::readFixedString | ( | char * | t,
|  | size_t | maxSize,
|  | bool | nullTerminate |
| ) |  |  | `[inherited]`

void cinder::IStream::readFixedString | ( | std::string * | t,
|  | size_t | size |
| ) |  |  | `[inherited]`

std::string cinder::IStream::readLine | ( |  | ) | `[inherited]`

void cinder::IStream::readData | ( | void * | dest,
|  | size_t | size |
| ) |  |  | `[inherited]`

static uint8_t cinder::StreamBase::getNativeEndianness | ( |  | ) | `[static, inherited]`

Returns the platform's endianness as a StreamBase::Endianness

const std::string& cinder::StreamBase::getFileName | ( |  | ) | const`[inherited]`

Returns the file name of the path from which a Stream originated when relevant. Empty string when undefined.

void cinder::StreamBase::setFileName | ( | const std::string & | aFileName | ) | `[inherited]`

Sets the file name of the path from which a Stream originated when relevant. Empty string when undefined.

## Member Data Documentation

FILE* cinder::IStreamFile::mFile`[protected]`

bool cinder::IStreamFile::mOwnsFile`[protected]`

size_t cinder::IStreamFile::mBufferSize`[protected]`

size_t cinder::IStreamFile::mDefaultBufferSize`[protected]`

shared_ptr<uint8_t> cinder::IStreamFile::mBuffer`[protected]`

off_t cinder::IStreamFile::mBufferOffset`[protected]`

off_t cinder::IStreamFile::mBufferFileOffset`[protected]`

off_t cinder::IStreamFile::mSize`[mutable, protected]`

bool cinder::IStreamFile::mSizeCached`[mutable, protected]`

const int cinder::IStream::MINIMUM_BUFFER_SIZE = 8`[static, protected, inherited]`

return cinder::StreamBase::STREAM_BIG_ENDIAN`[inherited]`

std::string cinder::StreamBase::mFileName`[protected, inherited]`

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

- include/cinder/Stream.h
- src/cinder/Stream.cpp