/* ZBinaryBufferWriter.cpp Author: Patrick Baggett Created: 6/05/2013 Purpose: Writes a binary stream to memory License: TODO */ #include /*************************************************************************/ void ZBinaryBufferWriter::WriteU8(uint8_t v) { Data[Offset] = v; ++Offset; } /*************************************************************************/ void ZBinaryBufferWriter::WriteU16(uint16_t v) { if(GetStreamByteOrder() != SST_BYTEORDER_HOST) v = SST_OS_ByteSwap16(v); memcpy(Data+Offset, &v, sizeof(uint16_t)); Offset += sizeof(uint16_t); } /*************************************************************************/ void ZBinaryBufferWriter::WriteU32(uint32_t v) { if(GetStreamByteOrder() != SST_BYTEORDER_HOST) v = SST_OS_ByteSwap32(v); memcpy(Data+Offset, &v, sizeof(uint32_t)); Offset += sizeof(uint32_t); } /*************************************************************************/ void ZBinaryBufferWriter::WriteU64(uint64_t v) { if(GetStreamByteOrder() != SST_BYTEORDER_HOST) v = SST_OS_ByteSwap64(v); memcpy(Data+Offset, &v, sizeof(uint64_t)); Offset += sizeof(uint64_t); } /*************************************************************************/ void ZBinaryBufferWriter::WriteU8Array(const uint8_t* v, size_t count) { memcpy(Data+Offset, v, count); Offset += sizeof(uint8_t) * count; } /*************************************************************************/ void ZBinaryBufferWriter::WriteU16Array(const uint16_t* v, size_t count) { if(GetStreamByteOrder() == SST_BYTEORDER_HOST) memcpy(Data+Offset, v, count*sizeof(uint16_t)); else { for(size_t i=0; i