/* ZBinaryBufferReader.cpp Author: Chris Ertel , Patrick Baggett Created: 3/6/2013 Purpose: Reads a binary stream from memory. License: TODO */ #include /*************************************************************************/ uint8_t ZBinaryBufferReader::ReadU8() { uint8_t retval = (uint8_t)Data[Offset]; ++Offset; return retval; } /*************************************************************************/ uint16_t ZBinaryBufferReader::ReadU16() { uint16_t value; memcpy(&value, GetPosition(), sizeof(uint16_t)); if(GetStreamByteOrder() != SST_BYTEORDER_HOST) value = SST_OS_ByteSwap16(value); Offset += sizeof(uint16_t); return value; } /*************************************************************************/ uint32_t ZBinaryBufferReader::ReadU32() { uint32_t value; memcpy(&value, GetPosition(), sizeof(uint32_t)); if(GetStreamByteOrder() != SST_BYTEORDER_HOST) value = SST_OS_ByteSwap32(value); Offset += sizeof(uint32_t); return value; } /*************************************************************************/ uint64_t ZBinaryBufferReader::ReadU64() { uint64_t value; memcpy(&value, GetPosition(), sizeof(uint64_t)); if(GetStreamByteOrder() != SST_BYTEORDER_HOST) value = SST_OS_ByteSwap64(value); Offset += sizeof(uint64_t); return value; } /*************************************************************************/ void ZBinaryBufferReader::ReadU8Array(uint8_t* ptr, size_t count) { memcpy(ptr, GetPosition(), count); Offset += count; } /*************************************************************************/ void ZBinaryBufferReader::ReadU16Array(uint16_t* ptr, size_t count) { if(GetStreamByteOrder() == SST_BYTEORDER_HOST) { memcpy(ptr, GetPosition(), sizeof(uint16_t) * count); Offset += sizeof(uint16_t) * count; } else { for(size_t i=0; i