Simple Stream implementation for accessing files. More...
#include <mitsuba/core/fstream.h>
Inheritance diagram for mitsuba::FileStream:Public Types | |
| enum | EFileMode { EReadOnly = 0, EReadWrite, ETruncWrite, ETruncReadWrite, EAppendWrite, EAppendReadWrite } |
| Supported file opening modes. More... | |
Public Types inherited from mitsuba::Stream | |
| enum | EByteOrder { EBigEndian = 0, ELittleEndian = 1, ENetworkByteOrder = EBigEndian } |
| Defines the byte order to use in this Stream. More... | |
Public Member Functions | |
| virtual const Class * | getClass () const |
| Retrieve this object's class. More... | |
Constructors | |
| FileStream () | |
| Create a file stream class with no file open. More... | |
| FileStream (const fs::path &path, EFileMode mode=EReadOnly) | |
| Create a file stream class and open a file with a given EFileMode. More... | |
File-specific features | |
| const fs::path & | getPath () const |
| Return the file path. More... | |
| void | open (const fs::path &filename, EFileMode mode=EReadOnly) |
| Open a file with a given open mode. More... | |
| void | close () |
| Close the current file. More... | |
| void | remove () |
| Remove the current file. More... | |
| std::string | toString () const |
| Return a string representation. More... | |
Stream interface | |
| void | read (void *ptr, size_t size) |
| Read a specified amount of data from the stream. More... | |
| void | write (const void *ptr, size_t size) |
| Write a specified amount of data into the stream. More... | |
| void | seek (size_t pos) |
| Seek to a position inside the stream. More... | |
| size_t | getPos () const |
| Get the current position inside the stream. More... | |
| size_t | getSize () const |
| Return the size of the stream. More... | |
| void | truncate (size_t size) |
| Truncate the stream to a given size. More... | |
| void | flush () |
| Flush the stream's buffers. More... | |
| bool | canWrite () const |
| Can we write to the stream? More... | |
| bool | canRead () const |
| Can we read from the stream? More... | |
Public Member Functions inherited from mitsuba::Stream | |
| Stream () | |
| Create a new stream. More... | |
| void | skip (size_t amount) |
| Skip the given number of bytes. More... | |
| void | writeString (const std::string &value) |
| Write a null-terminated string to the stream. More... | |
| void | writeLine (const std::string &value) |
| Write a string followed by a newline. More... | |
| void | writeShort (short value) |
| Write a signed short (16 bit) to the stream. More... | |
| void | writeShortArray (const short *values, size_t size) |
| Write an array of signed shorts (16 bit) to the stream. More... | |
| template<size_t N> | |
| void | writeShortArray (const short(&values)[N]) |
| Write an array of known size of signed shorts (16 bit) to the stream. More... | |
| void | writeUShort (unsigned short value) |
| Write an unsigned short (16 bit) to the stream. More... | |
| void | writeUShortArray (const unsigned short *values, size_t size) |
| Write an array of unsigned shorts (16 bit) to the stream. More... | |
| template<size_t N> | |
| void | writeUShortArray (const unsigned short(&values)[N]) |
| Write an array of known size of unsigned shorts (16 bit) to the stream. More... | |
| void | writeInt (int value) |
| Write a signed int (32 bit) to the stream. More... | |
| void | writeIntArray (const int *values, size_t size) |
| Write an array of signed ints (32 bit) to the stream. More... | |
| template<size_t N> | |
| void | writeIntArray (const int(&values)[N]) |
| Write an array of known size of signed ints (32 bit) to the stream. More... | |
| void | writeUInt (unsigned int value) |
| Write an unsigned int (32 bit) to the stream. More... | |
| void | writeUIntArray (const unsigned int *values, size_t size) |
| Write an array of unsigned ints (32 bit) to the stream. More... | |
| template<size_t N> | |
| void | writeUIntArray (const unsigned int(&values)[N]) |
| Write an array of known size of unsigned ints (32 bit) to the stream. More... | |
| void | writeLong (int64_t value) |
| Write a signed int (64 bit) to the stream. More... | |
| void | writeLongArray (const int64_t *values, size_t size) |
| Write an array of signed ints (64 bit) to the stream. More... | |
| template<size_t N> | |
| void | writeLongArray (const int64_t(&values)[N]) |
| Write an array of known size of signed ints (64 bit) to the stream. More... | |
| void | writeULong (uint64_t value) |
| Write an unsigned int (64 bit) to the stream. More... | |
| void | writeSize (size_t value) |
| Write a size value to the stream. More... | |
| void | writeULongArray (const uint64_t *values, size_t size) |
| Write an array of unsigned ints (64 bit) to the stream. More... | |
| template<size_t N> | |
| void | writeULongArray (const uint64_t(&values)[N]) |
| Write an array of known size of unsigned ints (64 bit) to the stream. More... | |
| void | writeChar (char value) |
| Write a signed character (8 bit) to the stream. More... | |
| void | writeUChar (unsigned char value) |
| Write an unsigned character (8 bit) to the stream. More... | |
| void | writeBool (bool value) |
| Write a boolean (8 bit) to the stream. More... | |
| void | writeHalf (half value) |
| Write a half-precision floating point number (16 bit) to the stream. More... | |
| void | writeHalfArray (const half *data, size_t size) |
| Write a half-precision floating point array (16 bit) to the stream. More... | |
| template<size_t N> | |
| void | writeHalfArray (const half(&values)[N]) |
| Write a known size half-precision floating point array (16 bit) to the stream. More... | |
| void | writeSingle (float value) |
| Write a single-precision floating point number (32 bit) to the stream. More... | |
| void | writeSingleArray (const float *data, size_t size) |
| Write a single-precision floating point array (32 bit) to the stream. More... | |
| template<size_t N> | |
| void | writeSingleArray (const float(&values)[N]) |
| Write a known size single-precision floating point array (32 bit) to the stream. More... | |
| void | writeDouble (double value) |
| Write a double-precision floating point number (64 bit) to the stream. More... | |
| void | writeDoubleArray (const double *data, size_t size) |
| Write a double-precision floating point array (64 bit) to the stream. More... | |
| template<size_t N> | |
| void | writeDoubleArray (const double(&values)[N]) |
| Write a known size double-precision floating point array (64 bit) to the stream. More... | |
| void | writeFloat (Float value) |
| Write a floating point number (configured precision) to the stream. More... | |
| void | writeFloatArray (const Float *data, size_t size) |
| Write an array of floating point values (configured precision) to the stream. More... | |
| template<size_t N> | |
| void | writeFloatArray (const Float(&values)[N]) |
| Write a known size array of floating point values (configured precision) to the stream. More... | |
| bool | isEOF () const |
| Return whether we are at the end of the stream. More... | |
| std::string | readLine () |
| Read a line from the stream and return it as a string. More... | |
| std::string | readString () |
| Read a null-terminated string from the stream. More... | |
| short | readShort () |
| Read a signed short (16 bit) from the stream. More... | |
| void | readShortArray (short *dest, size_t size) |
| Read an array of signed shorts (16 bit) from the stream. More... | |
| template<size_t N> | |
| void | readShortArray (short(&values)[N]) |
| Read an array of known size of signed shorts (16 bit) from the stream. More... | |
| unsigned short | readUShort () |
| Read an unsigned short (16 bit) from the stream. More... | |
| void | readUShortArray (unsigned short *dest, size_t size) |
| Read an array of unsigned shorts (16 bit) from the stream. More... | |
| template<size_t N> | |
| void | readUShortArray (short(&values)[N]) |
| Read an array of known size of unsigned shorts (16 bit) from the stream. More... | |
| int | readInt () |
| Read a signed int (32 bit) from the stream. More... | |
| void | readIntArray (int *dst, size_t size) |
| Read an array of signed ints (32 bit) from the stream. More... | |
| template<size_t N> | |
| void | readIntArray (int(&values)[N]) |
| Read an array of known size of signed ints (32 bit) from the stream. More... | |
| unsigned int | readUInt () |
| Read an unsigned int (32 bit) from the stream. More... | |
| void | readUIntArray (unsigned int *dest, size_t size) |
| Read an array of unsigned ints (32 bit) from the stream. More... | |
| template<size_t N> | |
| void | readUIntArray (int(&values)[N]) |
| Read an array of known size of unsigned ints (32 bit) from the stream. More... | |
| int64_t | readLong () |
| Read a signed int (64 bit) from the stream. More... | |
| void | readLongArray (int64_t *dst, size_t size) |
| Read an array of signed ints (64 bit) from the stream. More... | |
| template<size_t N> | |
| void | readLongArray (int64_t(&values)[N]) |
| Read an array of known size of signed ints (64 bit) from the stream. More... | |
| uint64_t | readULong () |
| Read an unsigned int (64 bit) from the stream. More... | |
| size_t | readSize () |
| Read a size value from the stream. More... | |
| void | readULongArray (uint64_t *dst, size_t size) |
| Read an array of unsigned ints (64 bit) from the stream. More... | |
| template<size_t N> | |
| void | readULongArray (uint64_t(&values)[N]) |
| Read an array of known size of unsigned ints (64 bit) from the stream. More... | |
| char | readChar () |
| Read a signed character (8 bit) from the stream. More... | |
| unsigned char | readUChar () |
| Read an unsigned character (8 bit) from the stream. More... | |
| bool | readBool () |
| Read a boolean (8 bit) from the stream. More... | |
| half | readHalf () |
| Read a half-precision floating point number (16 bit) from the stream. More... | |
| void | readHalfArray (half *data, size_t size) |
| Read a half-precision floating point array (16 bit) from the stream. More... | |
| template<size_t N> | |
| void | readHalfArray (half(&values)[N]) |
| Read a known-size half-precision floating point array (16 bit) from the stream. More... | |
| float | readSingle () |
| Read a single-precision floating point number (32 bit) from the stream. More... | |
| void | readSingleArray (float *data, size_t size) |
| Read a single-precision floating point array (32 bit) from the stream. More... | |
| template<size_t N> | |
| void | readSingleArray (float(&values)[N]) |
| Read a known-size single-precision floating point array (32 bit) from the stream. More... | |
| double | readDouble () |
| Read a double-precision floating point number (64 bit) from the stream. More... | |
| void | readDoubleArray (double *data, size_t size) |
| Read a double-precision floating point array (64 bit) from the stream. More... | |
| template<size_t N> | |
| void | readDoubleArray (double(&values)[N]) |
| Read a known-size double-precision floating point array (64 bit) from the stream. More... | |
| Float | readFloat () |
| Write a floating point number (configured precision) to the stream. More... | |
| void | readFloatArray (Float *data, size_t size) |
| Write an array of floating point values (configured precision) to the stream. More... | |
| template<size_t N> | |
| void | readFloatArray (Float(&values)[N]) |
| Read a known-size array of floating point values (configured precision) to the stream. More... | |
| void | copyTo (Stream *stream, int64_t numBytes=-1) |
| Copy content from this stream into another stream. More... | |
| template<typename T > | |
| T | readElement () |
| Read an element from the stream (uses partial template specialization to select a method appropriate to the data type) More... | |
| template<typename T > | |
| void | writeElement (T value) |
| Write an element to the stream (uses partial template specialization to select a method appropriate to the data type) More... | |
| template<typename T > | |
| void | readArray (T *array, size_t count) |
| Read an array from the stream (uses partial template specialization to select a method appropriate to the data type) More... | |
| template<typename T , size_t N> | |
| void | readArray (T(&arr)[N]) |
| Read a known-size array from the stream (uses partial template specialization to select a method appropriate to the data type) More... | |
| template<typename T > | |
| void | writeArray (const T *array, size_t count) |
| Write an array to the stream (uses partial template specialization to select a method appropriate to the data type) More... | |
| template<typename T , size_t N> | |
| void | writeArray (const T(&arr)[N]) |
| Write a known-size array to the stream (uses partial template specialization to select a method appropriate to the data type) More... | |
| void | setByteOrder (EByteOrder byteOrder) |
| Set the stream byte order. More... | |
| EByteOrder | getByteOrder () const |
| Return the byte order of this stream. More... | |
Public Member Functions inherited from Object | |
| Object () | |
| Construct a new object. More... | |
| int | getRefCount () const |
| Return the current reference count. More... | |
| void | incRef () const |
| Increase the reference count of the object by one. More... | |
| void | decRef (bool autoDeallocate=true) const |
| Decrease the reference count of the object and possibly deallocate it. More... | |
Static Public Member Functions | |
Miscellaneous | |
| static ref< FileStream > | createTemporary () |
| Create a temporary file and return an associated FileStream. More... | |
| static void | staticInitialization () |
| Initialize the file I/O layer (unicode conversions etc.) More... | |
| static void | staticShutdown () |
| Release resources taken up by staticInitialization() More... | |
Static Public Member Functions inherited from mitsuba::Stream | |
| static EByteOrder | getHostByteOrder () |
| Return the byte order of the underlying machine. More... | |
Static Public Member Functions inherited from Object | |
| static void | staticInitialization () |
| Initializes the built-in reference count debugger (if enabled) More... | |
| static void | staticShutdown () |
| Free the memory taken by staticInitialization() More... | |
Static Public Attributes | |
| static Class * | m_theClass |
Static Public Attributes inherited from mitsuba::Stream | |
| static Class * | m_theClass |
Static Public Attributes inherited from Object | |
| static Class * | m_theClass |
| Pointer to the object's class descriptor. More... | |
Protected Member Functions | |
| virtual | ~FileStream () |
| Virtual destructor. More... | |
Protected Member Functions inherited from mitsuba::Stream | |
| virtual | ~Stream () |
| Virtual destructor. More... | |
Protected Member Functions inherited from Object | |
| virtual | ~Object () |
| Virtual private deconstructor. (Will only be called by ref) More... | |
Simple Stream implementation for accessing files.
This class uses POSIX streams on Linux and OSX and the native WIN32 API when used on Windows.
| mitsuba::FileStream::FileStream | ( | ) |
Create a file stream class with no file open.
Create a file stream class and open a file with a given EFileMode.
|
protectedvirtual |
Virtual destructor.
The destructor frees all resources and closes the file if it is still open
|
virtual |
Can we read from the stream?
Implements mitsuba::Stream.
|
virtual |
Can we write to the stream?
Implements mitsuba::Stream.
| void mitsuba::FileStream::close | ( | ) |
Close the current file.
|
static |
Create a temporary file and return an associated FileStream.
|
virtual |
Flush the stream's buffers.
Implements mitsuba::Stream.
|
virtual |
Retrieve this object's class.
Reimplemented from mitsuba::Stream.
| const fs::path& mitsuba::FileStream::getPath | ( | ) | const |
Return the file path.
|
virtual |
Get the current position inside the stream.
Implements mitsuba::Stream.
|
virtual |
Return the size of the stream.
Implements mitsuba::Stream.
Open a file with a given open mode.
|
virtual |
Read a specified amount of data from the stream.
Throws an exception when the stream ended prematurely
Implements mitsuba::Stream.
| void mitsuba::FileStream::remove | ( | ) |
Remove the current file.
|
virtual |
Seek to a position inside the stream.
Implements mitsuba::Stream.
|
static |
Initialize the file I/O layer (unicode conversions etc.)
|
static |
Release resources taken up by staticInitialization()
|
virtual |
Return a string representation.
Reimplemented from mitsuba::Stream.
|
virtual |
Truncate the stream to a given size.
Implements mitsuba::Stream.
|
virtual |
Write a specified amount of data into the stream.
Throws an exception when not all data could be written
Implements mitsuba::Stream.
|
static |