cinder::IoStreamFile Class Reference

#include <Stream.h>

Inherits cinder::IoStream.

List of all members.

Public Types

enum  Endianness { STREAM_BIG_ENDIAN, STREAM_LITTLE_ENDIAN }

Public Member Functions

 ~IoStreamFile ()
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)
void read (std::string *s)
 Reads characters until a null terminator.
void read (ci::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
 Returns the file name of the path from which a Stream originated when relevant. Empty string when undefined.
void setFileName (const fs::path &aFileName)
 Sets the file name of the path from which a Stream originated when relevant. Empty string when undefined.
bool getDeleteOnDestroy () const
 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 setDeleteOnDestroy (bool enable=true)
 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.
void write (const std::string &s)
 Writes null-terminated string, including terminator.
void write (const ci::fs::path &p)
template<typename T >
void write (T t)
void write (const Buffer &buffer)
template<typename T >
void writeEndian (T t, uint8_t endian)
template<typename T >
void writeBig (T t)
template<typename T >
void writeLittle (T t)
void writeData (const void *src, size_t size)

Static Public Member Functions

static IoStreamFileRef create (FILE *file, bool ownsFile=true, int32_t defaultBufferSize=2048)
 Creates a new IoStreamFileRef 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

 IoStreamFile (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)
virtual void IOWrite (const void *t, size_t size)

Protected Attributes

FILE * mFile
bool mOwnsFile
int32_t mBufferSize
int32_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::IoStreamFile::~IoStreamFile (  ) 
cinder::IoStreamFile::IoStreamFile ( FILE *  aFile,
bool  aOwnsFile = true,
int32_t  aDefaultBufferSize = 2048 
) [protected]

Member Function Documentation

IoStreamFileRef cinder::IoStreamFile::create ( FILE *  file,
bool  ownsFile = true,
int32_t  defaultBufferSize = 2048 
) [static]

Creates a new IoStreamFileRef 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::IoStreamFile::readDataAvailable ( void *  dest,
size_t  maxSize 
) [virtual]

Implements cinder::IStream.

void cinder::IoStreamFile::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::IoStreamFile::seekRelative ( off_t  relativeOffset  )  [virtual]

Moves the current position of the stream by relativeOffset bytes.

Implements cinder::StreamBase.

off_t cinder::IoStreamFile::tell (  )  const [virtual]

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

Implements cinder::StreamBase.

off_t cinder::IoStreamFile::size (  )  const [virtual]

Implements cinder::IStream.

bool cinder::IoStreamFile::isEof (  )  const [virtual]

Implements cinder::IStream.

FILE* cinder::IoStreamFile::getFILE (  ) 
void cinder::IoStreamFile::IORead ( void *  t,
size_t  size 
) [protected, virtual]

Implements cinder::IStream.

size_t cinder::IoStreamFile::readDataImpl ( void *  dest,
size_t  maxSize 
) [protected]
void cinder::IoStreamFile::IOWrite ( const void *  t,
size_t  size 
) [protected, virtual]

Implements cinder::OStream.

template<typename T >
void cinder::IStream::read ( T *  t  )  [inherited]
void cinder::IStream::read ( std::string *  s  )  [inherited]

Reads characters until a null terminator.

void cinder::IStream::read ( ci::fs::path *  p  )  [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 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.

void cinder::OStream::write ( const std::string &  s  )  [inherited]

Writes null-terminated string, including terminator.

void cinder::OStream::write ( const ci::fs::path &  p  )  [inherited]
template<typename T >
void cinder::OStream::write ( t  )  [inherited]
void cinder::OStream::write ( const Buffer buffer  )  [inherited]
template<typename T >
void cinder::OStream::writeEndian ( t,
uint8_t  endian 
) [inherited]
template<typename T >
void cinder::OStream::writeBig ( t  )  [inherited]
template<typename T >
void cinder::OStream::writeLittle ( t  )  [inherited]
void cinder::OStream::writeData ( const void *  src,
size_t  size 
) [inherited]

Member Data Documentation

FILE* cinder::IoStreamFile::mFile [protected]
int32_t cinder::IoStreamFile::mBufferSize [protected]
std::shared_ptr<uint8_t> cinder::IoStreamFile::mBuffer [protected]
off_t cinder::IoStreamFile::mSize [mutable, protected]
bool cinder::IoStreamFile::mSizeCached [mutable, protected]
const int cinder::IStream::MINIMUM_BUFFER_SIZE = 8 [static, protected, inherited]
fs::path cinder::StreamBase::mFileName [protected, inherited]
bool cinder::StreamBase::mDeleteOnDestroy [protected, inherited]

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