LRAUV  revA
FileIOStream Class Reference

Wraps a c FILE* handle with an IOStream class. More...

#include <FileIOStream.h>

Inheritance diagram for FileIOStream:
Collaboration diagram for FileIOStream:

Public Member Functions

 FileIOStream (FILE *file=NULL, bool autoClose=false)
 Constructor. More...
 
 FileIOStream (const char *filename, bool clobber)
 Constructor. More...
 
virtual ~FileIOStream ()
 
void close ()
 
virtual IOStreamread (char *buffer, size_t num)
 reads num bytes from buffer to the output buffer/stream More...
 
void setFile (FILE *file, const char *filename)
 Change the assoicated file. More...
 
bool seek (unsigned int location)
 
virtual bool eof ()
 Indicates if the end of file has been reached. More...
 
virtual void clearErr ()
 
bool isReadable ()
 indicates whether the stream can actually be read from. More...
 
const char * getName ()
 returns name of the stream More...
 
const StrgetFilename ()
 
const struct stat getStat ()
 
IOStreamwrite (const char *buffer, size_t num)
 writes num bytes from buffer to the output buffer/stream More...
 
virtual IOStreamwrite (const char *buffer)
 writes zero-terminated buffer to the output buffer/stream More...
 
void setFile (FILE *file)
 Change the assoicated file. More...
 
int tell ()
 
void flush ()
 
bool open (const char *filename, bool clobber)
 
bool isWritable ()
 indicates whether the stream can actually be written to. More...
 
- Public Member Functions inherited from InStream
virtual ~InStream ()
 Destructor. More...
 
InStreamreadChar (signed char &value)
 reads a single byte to the input buffer/stream More...
 
InStreamreadCharHex (signed char &byte)
 reads a single unsigned char from the input buffer/stream as 2 hex chars More...
 
InStreamreadUCharHex (unsigned char &byte)
 reads a single unsigned char from the input buffer/stream as 2 hex chars More...
 
virtual InStreamreadLine (char *buf, unsigned int bufsize)
 
InStreamreadShort (short &value)
 reads a single short from the input buffer/stream More...
 
InStreamreadShort (unsigned short &value)
 reads a single short from the input buffer/stream More...
 
InStreamreadShortHex (short &word)
 reads a single short from the input buffer/stream as 4 hex chars More...
 
InStreamreadUShortHex (unsigned short &value)
 reads a single unsigned short from the input buffer/stream as 4 hex chars More...
 
InStreamreadUShortCompact (unsigned short &value)
 reads an unsigned short integer as 1 to 3 bytes, encoded as follows: xxxxxxx0 - 7 bit value, encoded in 1 byte xxxxxx01+1byte - 14 bit value, encoded in 2 bytes xxxxx011+2bytes - 16 bit value, encoded in 3 bytes More...
 
InStreamreadInt24 (int &medInt)
 reads a 3-byte integer to the input buffer/stream only works on little-endian machines! More...
 
InStreamreadInt (int &value)
 reads a 4-byte integer to the input buffer/stream More...
 
InStreamreadLongLong (long long &value)
 reads a 8-byte integer to the input buffer/stream More...
 
InStreamreadLongLongCompact (long long &value)
 reads a signed long long integer as 1 to 9 bytes, encoded as follows: 0xxxxxxx - 7 bit value, encoded in 1 byte 10xxxxxx+1byte - 14 bit value, encoded in 2 bytes 110xxxxx+2bytes - 21 bit value, encoded in 3 bytes 1110xxxx+3bytes - 28 bit value, encoded in 4 bytes 11110xxx+4bytes - 35 bit value, encoded in 5 bytes 111110xx+5bytes - 42 bit value, encoded in 6 bytes 1111110x+6bytes - 49 bit value, encoded in 7 bytes 11111110+7bytes - 56 bit value, encoded in 8 bytes 11111111+8bytes - 64 bit value, encoded in 9 bytes More...
 
InStreamreadFloat (float &value)
 reads a 4-byte float to the input buffer/stream More...
 
InStreamreadFloat2 (float &value)
 reads a 2-byte float to the input buffer/stream More...
 
InStreamreadFloat3 (float &value)
 reads a 3-byte float to the input buffer/stream More...
 
InStreamreadDouble (double &value)
 reads a 8-byte double to the input buffer/stream More...
 
virtual InStreamreadUntil (char *buf, unsigned int num, unsigned char match)
 
size_t bytesRead ()
 Indicates the number of bytes read in the last operation. More...
 
size_t getBytesRead ()
 Indicates the number of bytes read in the last operation. More...
 
size_t getTotalBytesRead ()
 Indicates the total number of bytes read;. More...
 
- Public Member Functions inherited from OutStream
virtual ~OutStream ()
 Destructor. More...
 
virtual OutStreamwriteHex (const char *buffer, size_t num)
 writes num bytes from buffer to the output buffer/stream as hex chars More...
 
virtual OutStreamwriteHex (const char *buffer)
 writes zero-terminated buffer to the output buffer/stream More...
 
OutStreamoperator<< (const Str buffer)
 write a Str, using stream operator More...
 
OutStreamoperator<< (const char buffer[])
 write a Str, using stream operator More...
 
OutStreamoperator<< (const char byte)
 write a Str, using stream operator More...
 
OutStreamoperator<< (const signed char byte)
 write a Str, using stream operator More...
 
OutStreamoperator<< (const unsigned char byte)
 write a Str, using stream operator More...
 
OutStreamoperator<< (const int number)
 write a Str, using stream operator More...
 
OutStreamwriteChar (const signed char value)
 writes a single byte to the output buffer/stream More...
 
OutStreamwriteCharHex (const signed char byte)
 writes a single signed char to the output buffer/stream as 2 hex chars More...
 
OutStreamwriteUCharHex (const unsigned char byte)
 writes a single unsigned char to the output buffer/stream as 2 hex chars More...
 
OutStreamwriteInteger (const int number, const unsigned int radix=10)
 writes an integer as a base-radix string More...
 
OutStreamwriteNumber (const double number, const unsigned int radix=10)
 
OutStreamwriteShort (const short value)
 writes a single short to the output buffer/stream More...
 
OutStreamwriteShortHex (const short word)
 writes a single short to the output buffer/stream as 4 hex chars More...
 
OutStreamwriteUShortHex (const unsigned short word)
 writes a single unsigned short to the output buffer/stream as 4 hex chars More...
 
OutStreamwriteUShortCompact (const unsigned short &value)
 writes an unsigned short integer as 1 to 3 bytes, encoded as follows: xxxxxxx0 - 7 bit value, encoded in 1 byte xxxxxx01+1byte - 14 bit value, encoded in 2 bytes xxxxx011+2bytes - 16 bit value, encoded in 3 bytes More...
 
OutStreamwriteInt24 (const int medInt)
 writes a 3-byte integer to the output buffer/stream only works on little-endian machines! More...
 
OutStreamwriteInt (const int value)
 writes a 4-byte integer to the output buffer/stream More...
 
OutStreamwriteLongLong (const long long value)
 writes a 8-byte integer to the output buffer/stream More...
 
OutStreamwriteLongLongCompact (const long long &value)
 writes a signed long long integer as 1 to 9 bytes, encoded as follows: 0xxxxxxx - 7 bit value, encoded in 1 byte 10xxxxxx+1byte - 14 bit value, encoded in 2 bytes 110xxxxx+2bytes - 21 bit value, encoded in 3 bytes 1110xxxx+3bytes - 28 bit value, encoded in 4 bytes 11110xxx+4bytes - 35 bit value, encoded in 5 bytes 111110xx+5bytes - 42 bit value, encoded in 6 bytes 1111110x+6bytes - 49 bit value, encoded in 7 bytes 11111110+7bytes - 56 bit value, encoded in 8 bytes 11111111+8bytes - 64 bit value, encoded in 9 bytes More...
 
OutStreamwriteFloat (const float value)
 writes a 4-byte float to the output buffer/stream More...
 
OutStreamwriteFloat2 (const float value)
 writes a 2-byte float to the output buffer/stream More...
 
OutStreamwriteFloat3 (const float value)
 writes a 3-byte float to the output buffer/stream More...
 
OutStreamwriteDouble (const double value)
 writes a 8-byte double to the output buffer/stream More...
 
OutStreamwriteDouble6 (const double value)
 
size_t bytesWritten ()
 

Protected Attributes

FILE * file_
 
bool autoClose_
 
Mutex fileMutex_
 
- Protected Attributes inherited from OutStream
size_t lastWritten_
 

Private Member Functions

 FileIOStream (const FileIOStream &old)
 

Private Attributes

Str filename_
 

Additional Inherited Members

- Protected Member Functions inherited from InStream
 InStream ()
 Protected Constructor for abstract class. More...
 
void zeroBytesRead ()
 
void incBytesRead ()
 
void incBytesRead (size_t incRead)
 
void setBytesRead (size_t lastRead)
 
void zeroTotalBytesRead ()
 
- Protected Member Functions inherited from OutStream
 OutStream ()
 Protected Constructor for abstract class. More...
 
- Static Protected Attributes inherited from OutStream
static const unsigned char HEX_CHARS [] = "0123456789ABCDEF"
 

Detailed Description

Wraps a c FILE* handle with an IOStream class.

Part of an attempt to avoid the standard template library

Constructor & Destructor Documentation

FileIOStream::FileIOStream ( FILE *  file = NULL,
bool  autoClose = false 
)

Constructor.

FileIOStream::FileIOStream ( const char *  filename,
bool  clobber 
)

Constructor.

References filename_, and open().

FileIOStream::~FileIOStream ( )
virtual

References autoClose_, and close().

FileIOStream::FileIOStream ( const FileIOStream old)
private

Member Function Documentation

void FileIOStream::clearErr ( )
virtual

References file_, and fileMutex_.

void FileIOStream::close ( )

References file_, and fileMutex_.

Referenced by open(), and ~FileIOStream().

bool FileIOStream::eof ( )
virtual

Indicates if the end of file has been reached.

Implements InStream.

References file_, and fileMutex_.

void FileIOStream::flush ( )

References file_, and fileMutex_.

const Str& FileIOStream::getFilename ( )
inline

References filename_.

const char* FileIOStream::getName ( )
inlinevirtual

returns name of the stream

Implements InStream.

References Str::cStr(), and filename_.

Referenced by MtxIOStream::append(), MtxIOStream::read(), and MtxIOStream::write().

const struct stat FileIOStream::getStat ( )
bool FileIOStream::isReadable ( )
inlinevirtual

indicates whether the stream can actually be read from.

Implements InStream.

References file_.

Referenced by Mtx::append(), and Mtx::Mtx().

bool FileIOStream::isWritable ( )
inlinevirtual

indicates whether the stream can actually be written to.

Implements OutStream.

References file_.

Referenced by Mtx::append(), and Mtx::write().

bool FileIOStream::open ( const char *  filename,
bool  clobber 
)

References close(), file_, and fileMutex_.

Referenced by FileIOStream().

IOStream & FileIOStream::read ( char *  buffer,
size_t  num 
)
virtual

reads num bytes from buffer to the output buffer/stream

reads num bytes from the stream to the buffer

Implements InStream.

References file_, fileMutex_, and InStream::setBytesRead().

bool FileIOStream::seek ( unsigned int  location)
void FileIOStream::setFile ( FILE *  file,
const char *  filename 
)
inline

Change the assoicated file.

References file_, and filename_.

void FileIOStream::setFile ( FILE *  file)
inline

Change the assoicated file.

References file_.

int FileIOStream::tell ( )

References file_, and fileMutex_.

IOStream & FileIOStream::write ( const char *  buffer,
size_t  num 
)
virtual

writes num bytes from buffer to the output buffer/stream

Implements OutStream.

References file_, fileMutex_, and OutStream::lastWritten_.

Referenced by write().

virtual IOStream& FileIOStream::write ( const char *  buffer)
inlinevirtual

writes zero-terminated buffer to the output buffer/stream

Reimplemented from OutStream.

References write().

Member Data Documentation

bool FileIOStream::autoClose_
protected

Referenced by ~FileIOStream().

FILE* FileIOStream::file_
protected
Mutex FileIOStream::fileMutex_
protected
Str FileIOStream::filename_
private

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