xoreos  0.0.5
Public Member Functions | Private Attributes | List of all members
Common::MemoryReadStreamEndian Class Reference

This is a wrapper around MemoryReadStream, but it adds non-endian read methods whose endianness is set on the stream creation. More...

#include <memreadstream.h>

Inheritance diagram for Common::MemoryReadStreamEndian:
Inheritance graph
[legend]
Collaboration diagram for Common::MemoryReadStreamEndian:
Collaboration graph
[legend]

Public Member Functions

 MemoryReadStreamEndian (const byte *dataPtr, size_t dataSize, bool bigEndian=false, bool disposeMemory=false)
 
 ~MemoryReadStreamEndian ()
 
uint16 readUint16 ()
 
uint32 readUint32 ()
 
uint64 readUint64 ()
 
uint16 readSint16 ()
 
uint32 readSint32 ()
 
uint64 readSint64 ()
 
float readIEEEFloat ()
 
double readIEEEDouble ()
 
- Public Member Functions inherited from Common::MemoryReadStream
 MemoryReadStream (const byte *dataPtr, size_t dataSize, bool disposeMemory=false)
 This constructor takes a pointer to a memory buffer and a length, and wraps it. More...
 
 MemoryReadStream (const char *str, bool useTerminator=false)
 Create a MemoryReadStream around a static string buffer, optionally including the terminating \0. More...
 
template<size_t N>
 MemoryReadStream (const byte(&array)[N])
 Template constructor to create a MemoryReadStream around a static array buffer. More...
 
 ~MemoryReadStream ()
 
size_t read (void *dataPtr, size_t dataSize)
 Read data from the stream. More...
 
bool eos () const
 Returns true if a read failed because the stream has been reached. More...
 
size_t pos () const
 Obtains the current value of the stream position indicator of the stream. More...
 
size_t size () const
 Obtains the total size of the stream, measured in bytes. More...
 
size_t seek (ptrdiff_t offset, Origin whence=kOriginBegin)
 Sets the stream position indicator for the stream. More...
 
const bytegetData () const
 
- Public Member Functions inherited from Common::SeekableReadStream
 SeekableReadStream ()
 
 ~SeekableReadStream ()
 
virtual size_t skip (ptrdiff_t offset)
 Skip the specified number of bytes, adding that offset to the current position in the stream. More...
 
- Public Member Functions inherited from Common::ReadStream
 ReadStream ()
 
virtual ~ReadStream ()
 
byte readByte ()
 Read an unsigned byte from the stream and return it. More...
 
FORCEINLINE int8 readSByte ()
 Read a signed byte from the stream and return it. More...
 
uint32 readChar ()
 Reads the next character from stream and returns it as an unsigned char cast to an uint32, or kEOF on end of file or error. More...
 
uint16 readUint16LE ()
 Read an unsigned 16-bit word stored in little endian (LSB first) order from the stream and return it. More...
 
uint32 readUint32LE ()
 Read an unsigned 32-bit word stored in little endian (LSB first) order from the stream and return it. More...
 
uint64 readUint64LE ()
 Read an unsigned 64-bit word stored in little endian (LSB first) order from the stream and return it. More...
 
uint16 readUint16BE ()
 Read an unsigned 16-bit word stored in big endian (MSB first) order from the stream and return it. More...
 
uint32 readUint32BE ()
 Read an unsigned 32-bit word stored in big endian (MSB first) order from the stream and return it. More...
 
uint64 readUint64BE ()
 Read an unsigned 64-bit word stored in big endian (MSB first) order from the stream and return it. More...
 
FORCEINLINE int16 readSint16LE ()
 Read a signed 16-bit word stored in little endian (LSB first) order from the stream and return it. More...
 
FORCEINLINE int32 readSint32LE ()
 Read a signed 32-bit word stored in little endian (LSB first) order from the stream and return it. More...
 
FORCEINLINE int64 readSint64LE ()
 Read a signed 64-bit word stored in little endian (LSB first) order from the stream and return it. More...
 
FORCEINLINE int16 readSint16BE ()
 Read a signed 16-bit word stored in big endian (MSB first) order from the stream and return it. More...
 
FORCEINLINE int32 readSint32BE ()
 Read a signed 32-bit word stored in big endian (MSB first) order from the stream and return it. More...
 
FORCEINLINE int64 readSint64BE ()
 Read a signed 64-bit word stored in big endian (MSB first) order from the stream and return it. More...
 
FORCEINLINE float readIEEEFloatLE ()
 Read a 32-bit IEEE float stored in little endian (LSB first) order from the stream and return it. More...
 
FORCEINLINE float readIEEEFloatBE ()
 Read a 32-bit IEEE float stored in big endian (MSB first) order from the stream and return it. More...
 
FORCEINLINE double readIEEEDoubleLE ()
 Read a 64-bit IEEE double stored in little endian (LSB first) order from the stream and return it. More...
 
FORCEINLINE double readIEEEDoubleBE ()
 Read a 64-bit IEEE double stored in big endian (MSB first) order from the stream and return it. More...
 
MemoryReadStreamreadStream (size_t dataSize)
 Read the specified amount of data into a new[]'ed buffer which then is wrapped into a MemoryReadStream. More...
 

Private Attributes

const bool _bigEndian
 

Additional Inherited Members

- Public Types inherited from Common::SeekableReadStream
enum  Origin { kOriginBegin = 0, kOriginCurrent = 1, kOriginEnd = 2, kOriginMAX }
 The position a seeking offset takes as a base. More...
 
- Static Public Member Functions inherited from Common::SeekableReadStream
static size_t evalSeek (ptrdiff_t offset, Origin whence, size_t pos, size_t begin, size_t size)
 Evaluate the seek offset relative to whence into a position from the beginning. More...
 
- Static Public Attributes inherited from Common::ReadStream
static const uint32 kEOF = 0xFFFFFFFF
 Return value for end-of-file. More...
 
static const size_t kSizeInvalid = SIZE_MAX
 
static const size_t kPositionInvalid = SIZE_MAX
 

Detailed Description

This is a wrapper around MemoryReadStream, but it adds non-endian read methods whose endianness is set on the stream creation.

Definition at line 120 of file memreadstream.h.

Constructor & Destructor Documentation

◆ MemoryReadStreamEndian()

Common::MemoryReadStreamEndian::MemoryReadStreamEndian ( const byte dataPtr,
size_t  dataSize,
bool  bigEndian = false,
bool  disposeMemory = false 
)

Definition at line 109 of file memreadstream.cpp.

◆ ~MemoryReadStreamEndian()

Common::MemoryReadStreamEndian::~MemoryReadStreamEndian ( )

Definition at line 115 of file memreadstream.cpp.

Member Function Documentation

◆ readIEEEDouble()

double Common::MemoryReadStreamEndian::readIEEEDouble ( )
inline

Definition at line 157 of file memreadstream.h.

References _bigEndian, Common::ReadStream::readIEEEDoubleBE(), and Common::ReadStream::readIEEEDoubleLE().

Here is the call graph for this function:

◆ readIEEEFloat()

float Common::MemoryReadStreamEndian::readIEEEFloat ( )
inline

Definition at line 153 of file memreadstream.h.

References _bigEndian, Common::ReadStream::readIEEEFloatBE(), and Common::ReadStream::readIEEEFloatLE().

Here is the call graph for this function:

◆ readSint16()

uint16 Common::MemoryReadStreamEndian::readSint16 ( )
inline

Definition at line 141 of file memreadstream.h.

References _bigEndian, Common::ReadStream::readSint16BE(), and Common::ReadStream::readSint16LE().

Here is the call graph for this function:

◆ readSint32()

uint32 Common::MemoryReadStreamEndian::readSint32 ( )
inline

Definition at line 145 of file memreadstream.h.

References _bigEndian, Common::ReadStream::readSint32BE(), and Common::ReadStream::readSint32LE().

Here is the call graph for this function:

◆ readSint64()

uint64 Common::MemoryReadStreamEndian::readSint64 ( )
inline

Definition at line 149 of file memreadstream.h.

References _bigEndian, Common::ReadStream::readSint64BE(), and Common::ReadStream::readSint64LE().

Here is the call graph for this function:

◆ readUint16()

uint16 Common::MemoryReadStreamEndian::readUint16 ( )
inline

Definition at line 129 of file memreadstream.h.

References _bigEndian, Common::ReadStream::readUint16BE(), and Common::ReadStream::readUint16LE().

Here is the call graph for this function:

◆ readUint32()

uint32 Common::MemoryReadStreamEndian::readUint32 ( )
inline

Definition at line 133 of file memreadstream.h.

References _bigEndian, Common::ReadStream::readUint32BE(), and Common::ReadStream::readUint32LE().

Here is the call graph for this function:

◆ readUint64()

uint64 Common::MemoryReadStreamEndian::readUint64 ( )
inline

Definition at line 137 of file memreadstream.h.

References _bigEndian, Common::ReadStream::readUint64BE(), and Common::ReadStream::readUint64LE().

Here is the call graph for this function:

Member Data Documentation

◆ _bigEndian

const bool Common::MemoryReadStreamEndian::_bigEndian
private

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