Cinder  0.9.1
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
cinder::IStreamFile Class Reference

#include <Stream.h>

Inherits cinder::IStreamCinder.

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)
 
void seekRelative (off_t relativeOffset)
 
off_t tell () const
 
off_t size () const
 
bool isEof () const
 
FILE * getFILE ()
 
template<typename T >
void read (T *t)
 
void read (std::string *s)
 
void read (fs::path *p)
 
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 fs::path & getFileName () const
 
void setFileName (const fs::path &aFileName)
 
bool getDeleteOnDestroy () const
 
void setDeleteOnDestroy (bool enable=true)
 

Static Public Member Functions

static IStreamFileRef create (FILE *file, bool ownsFile=true, int32_t defaultBufferSize=2048)
 
static uint8_t getNativeEndianness ()
 

Protected Member Functions

 IStreamFile (FILE *aFile, bool aOwnsFile=true, int32_t aDefaultBufferSize=2048)
 
virtual void IORead (void *t, size_t size)
 
size_t readDataImpl (void *dest, size_t maxSize)
 

Protected Attributes

FILE * mFile
 
bool mOwnsFile
 
size_t mBufferSize
 
size_t mDefaultBufferSize
 
std::shared_ptr< uint8_t > mBuffer
 
off_t mBufferOffset
 
off_t mBufferFileOffset
 
off_t mSize
 
bool mSizeCached
 
fs::path mFileName
 
bool mDeleteOnDestroy
 

Static Protected Attributes

static const int MINIMUM_BUFFER_SIZE = 8
 

Member Enumeration Documentation

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::create ( 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::IStreamCinder.

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::IStreamCinder.

bool cinder::IStreamFile::isEof ( ) const
virtual

Implements cinder::IStreamCinder.

FILE* cinder::IStreamFile::getFILE ( )
void cinder::IStreamFile::IORead ( void *  t,
size_t  size 
)
protectedvirtual

Implements cinder::IStreamCinder.

size_t cinder::IStreamFile::readDataImpl ( void *  dest,
size_t  maxSize 
)
protected
template<typename T >
void cinder::IStreamCinder::read ( T *  t)
inherited
void cinder::IStreamCinder::read ( std::string *  s)
inherited

Reads characters until a null terminator.

void cinder::IStreamCinder::read ( fs::path *  p)
inherited
template<typename T >
void cinder::IStreamCinder::readEndian ( T *  t,
uint8_t  endian 
)
inherited
template<typename T >
void cinder::IStreamCinder::readBig ( T *  t)
inherited
template<typename T >
void cinder::IStreamCinder::readLittle ( T *  t)
inherited
void cinder::IStreamCinder::readFixedString ( char *  t,
size_t  maxSize,
bool  nullTerminate 
)
inherited
void cinder::IStreamCinder::readFixedString ( std::string *  t,
size_t  size 
)
inherited
std::string cinder::IStreamCinder::readLine ( )
inherited
void cinder::IStreamCinder::readData ( void *  dest,
size_t  size 
)
inherited
static uint8_t cinder::StreamBase::getNativeEndianness ( )
staticinherited

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

const fs::path& 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 fs::path &  aFileName)
inherited

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

bool cinder::StreamBase::getDeleteOnDestroy ( ) const
inherited

Returns whether the Stream has been requested to destroy its source upon its own destruction. For example, IStreamFile will delete its source file. Ignored in some types of streams. Defaults to false.

void cinder::StreamBase::setDeleteOnDestroy ( bool  enable = true)
inherited

Sets whether the Stream has been requested to destroy its source upon its own destruction. For example, IStreamFile will delete its source file. Ignored in some types of streams. Defaults to false.

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
std::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
mutableprotected
bool cinder::IStreamFile::mSizeCached
mutableprotected
const int cinder::IStreamCinder::MINIMUM_BUFFER_SIZE = 8
staticprotectedinherited
fs::path cinder::StreamBase::mFileName
protectedinherited
bool cinder::StreamBase::mDeleteOnDestroy
protectedinherited

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