#include <PxFileBuf.h>
Public Types | |
enum | EndianMode { ENDIAN_NONE = 0, ENDIAN_BIG = 1, ENDIAN_LITTLE = 2 } |
enum | OpenMode { OPEN_FILE_NOT_FOUND, OPEN_READ_ONLY, OPEN_WRITE_ONLY, OPEN_READ_WRITE_NEW, OPEN_READ_WRITE_EXISTING } |
enum | SeekType { SEEKABLE_NO = 0, SEEKABLE_READ = 0x1, SEEKABLE_WRITE = 0x2, SEEKABLE_READWRITE = 0x3 } |
Public Member Functions | |
PxFileBuf (EndianMode mode=ENDIAN_LITTLE) | |
virtual | ~PxFileBuf (void) |
virtual OpenMode | getOpenMode (void) const =0 |
bool | isOpen (void) const |
virtual SeekType | isSeekable (void) const =0 |
void | setEndianMode (EndianMode e) |
EndianMode | getEndianMode (void) const |
virtual uint32_t | getFileLength (void) const =0 |
virtual uint32_t | seekRead (uint32_t loc)=0 |
Seeks the stream to a particular location for reading. | |
virtual uint32_t | seekWrite (uint32_t loc)=0 |
Seeks the stream to a particular location for writing. | |
virtual uint32_t | read (void *mem, uint32_t len)=0 |
Reads from the stream into a buffer. | |
virtual uint32_t | peek (void *mem, uint32_t len)=0 |
Reads from the stream into a buffer but does not advance the read location. | |
virtual uint32_t | write (const void *mem, uint32_t len)=0 |
Writes a buffer of memory to the stream. | |
virtual uint32_t | tellRead (void) const =0 |
Reports the current stream location read aqccess. | |
virtual uint32_t | tellWrite (void) const =0 |
Reports the current stream location for write access. | |
virtual void | flush (void)=0 |
Causes any temporarily cached data to be flushed to the stream. | |
virtual void | close (void) |
Close the stream. | |
void | release (void) |
PX_INLINE void | swap2Bytes (void *_data) const |
PX_INLINE void | swap4Bytes (void *_data) const |
PX_INLINE void | swap8Bytes (void *_data) const |
PX_INLINE void | storeDword (uint32_t v) |
PX_INLINE void | storeFloat (float v) |
PX_INLINE void | storeDouble (double v) |
PX_INLINE void | storeByte (uint8_t b) |
PX_INLINE void | storeWord (uint16_t w) |
uint8_t | readByte (void) |
uint16_t | readWord (void) |
uint32_t | readDword (void) |
float | readFloat (void) |
double | readDouble (void) |
Static Public Member Functions | |
static PX_INLINE bool | isBigEndian () |
Static Public Attributes | |
static const uint32_t | STREAM_SEEK_END = 0xFFFFFFFF |
Declares a constant to seek to the end of the stream. | |
Private Attributes | |
bool | mEndianSwap |
EndianMode | mEndianMode |
The user needs to supply an PxFileBuf implementation to a number of methods to allow the SDK to read or write chunks of binary data. This allows flexibility for the source/destination of the data. For example the PxFileBuf could store data in a file, memory buffer or custom file format.
enum PxFileBuf::OpenMode |
enum PxFileBuf::SeekType |
PxFileBuf::PxFileBuf | ( | EndianMode | mode = ENDIAN_LITTLE |
) | [inline] |
virtual PxFileBuf::~PxFileBuf | ( | void | ) | [inline, virtual] |
virtual void PxFileBuf::close | ( | void | ) | [inline, virtual] |
Close the stream.
virtual void PxFileBuf::flush | ( | void | ) | [pure virtual] |
Causes any temporarily cached data to be flushed to the stream.
EndianMode PxFileBuf::getEndianMode | ( | void | ) | const [inline] |
virtual uint32_t PxFileBuf::getFileLength | ( | void | ) | const [pure virtual] |
virtual OpenMode PxFileBuf::getOpenMode | ( | void | ) | const [pure virtual] |
static PX_INLINE bool PxFileBuf::isBigEndian | ( | ) | [inline, static] |
bool PxFileBuf::isOpen | ( | void | ) | const [inline] |
virtual SeekType PxFileBuf::isSeekable | ( | void | ) | const [pure virtual] |
virtual uint32_t PxFileBuf::peek | ( | void * | mem, | |
uint32_t | len | |||
) | [pure virtual] |
Reads from the stream into a buffer but does not advance the read location.
[out] | mem | The buffer to read the stream into. |
[in] | len | The number of bytes to stream into the buffer |
virtual uint32_t PxFileBuf::read | ( | void * | mem, | |
uint32_t | len | |||
) | [pure virtual] |
Reads from the stream into a buffer.
[out] | mem | The buffer to read the stream into. |
[in] | len | The number of bytes to stream into the buffer |
uint8_t PxFileBuf::readByte | ( | void | ) | [inline] |
double PxFileBuf::readDouble | ( | void | ) | [inline] |
uint32_t PxFileBuf::readDword | ( | void | ) | [inline] |
float PxFileBuf::readFloat | ( | void | ) | [inline] |
uint16_t PxFileBuf::readWord | ( | void | ) | [inline] |
void PxFileBuf::release | ( | void | ) | [inline] |
virtual uint32_t PxFileBuf::seekRead | ( | uint32_t | loc | ) | [pure virtual] |
Seeks the stream to a particular location for reading.
If the location passed exceeds the length of the stream, then it will seek to the end. Returns the location it ended up at (useful if you seek to the end) to get the file position
virtual uint32_t PxFileBuf::seekWrite | ( | uint32_t | loc | ) | [pure virtual] |
Seeks the stream to a particular location for writing.
If the location passed exceeds the length of the stream, then it will seek to the end. Returns the location it ended up at (useful if you seek to the end) to get the file position
void PxFileBuf::setEndianMode | ( | EndianMode | e | ) | [inline] |
PX_INLINE void PxFileBuf::storeByte | ( | uint8_t | b | ) | [inline] |
PX_INLINE void PxFileBuf::storeDouble | ( | double | v | ) | [inline] |
PX_INLINE void PxFileBuf::storeDword | ( | uint32_t | v | ) | [inline] |
PX_INLINE void PxFileBuf::storeFloat | ( | float | v | ) | [inline] |
PX_INLINE void PxFileBuf::storeWord | ( | uint16_t | w | ) | [inline] |
PX_INLINE void PxFileBuf::swap2Bytes | ( | void * | _data | ) | const [inline] |
PX_INLINE void PxFileBuf::swap4Bytes | ( | void * | _data | ) | const [inline] |
PX_INLINE void PxFileBuf::swap8Bytes | ( | void * | _data | ) | const [inline] |
virtual uint32_t PxFileBuf::tellRead | ( | void | ) | const [pure virtual] |
Reports the current stream location read aqccess.
virtual uint32_t PxFileBuf::tellWrite | ( | void | ) | const [pure virtual] |
Reports the current stream location for write access.
virtual uint32_t PxFileBuf::write | ( | const void * | mem, | |
uint32_t | len | |||
) | [pure virtual] |
Writes a buffer of memory to the stream.
[in] | mem | The address of a buffer of memory to send to the stream. |
[in] | len | The number of bytes to send to the stream. |
EndianMode PxFileBuf::mEndianMode [private] |
bool PxFileBuf::mEndianSwap [private] |
const uint32_t PxFileBuf::STREAM_SEEK_END = 0xFFFFFFFF [static] |
Declares a constant to seek to the end of the stream.
Does not support streams longer than 32 bits