signed char MessageIn::readInt8(const char *const str) { signed char value = CAST_S8(-1); if (mPos < mLength) value = CAST_S8(mData[mPos]); DEBUGLOG2("readInt8: " + toStringPrint(CAST_U32( CAST_U8(value))), mPos, str); mPos += 1; PacketCounters::incInBytes(1); return value; }
void MessageOut::writeInt32(const int32_t value, const char *const str) { DEBUGLOG2("writeInt32: " + toStringPrint(CAST_U32(value)), mPos, str); expand(4); #if SDL_BYTEORDER == SDL_BIG_ENDIAN int32_t swap = SDL_Swap32(value); memcpy(mData + CAST_SIZE(mPos), &swap, sizeof(int32_t)); #else memcpy(mData + CAST_SIZE(mPos), &value, sizeof(int32_t)); #endif mPos += 4; PacketCounters::incOutBytes(4); }
void MessageOut::writeInt16(const int16_t value, const char *const str) { expand(2); #if SDL_BYTEORDER == SDL_BIG_ENDIAN int16_t swap = SDL_Swap16(value); memcpy(mData + static_cast<size_t>(mPos), &swap, sizeof(int16_t)); #else memcpy(mData + static_cast<size_t>(mPos), &value, sizeof(int16_t)); #endif DEBUGLOG2("writeInt16: " + toStringPrint(static_cast<unsigned int>( static_cast<uint16_t>(value))), mPos, str); mPos += 2; PacketCounters::incOutBytes(2); }
int32_t MessageIn::readInt32(const char *const str) { int32_t value = -1; if (mPos + 4 <= mLength) { #if SDL_BYTEORDER == SDL_BIG_ENDIAN int32_t swap; memcpy(&swap, mData + static_cast<size_t>(mPos), sizeof(int32_t)); value = SDL_Swap32(swap); #else memcpy(&value, mData + static_cast<size_t>(mPos), sizeof(int32_t)); #endif } DEBUGLOG2("readInt32: " + toStringPrint(static_cast<unsigned int>(value)), mPos, str); mPos += 4; PacketCounters::incInBytes(4); return value; }
int64_t MessageIn::readInt64(const char *const str) { int64_t value = -1; if (mPos + 8 <= mLength) { #if SDL_BYTEORDER == SDL_BIG_ENDIAN int64_t swap; memcpy(&swap, mData + CAST_SIZE(mPos), sizeof(int64_t)); value = SDL_Swap64(swap); #else // SDL_BYTEORDER == SDL_BIG_ENDIAN memcpy(&value, mData + CAST_SIZE(mPos), sizeof(int64_t)); #endif // SDL_BYTEORDER == SDL_BIG_ENDIAN } DEBUGLOG2("readInt64: " + toStringPrint(CAST_U32(value)), mPos, str); mPos += 8; PacketCounters::incInBytes(8); return value; }
uint16_t MessageIn::readUInt16(const char *const str) { uint16_t value = 0xffU; if (mPos + 2 <= mLength) { #if SDL_BYTEORDER == SDL_BIG_ENDIAN uint16_t swap; memcpy(&swap, mData + CAST_SIZE(mPos), sizeof(uint16_t)); value = SDL_Swap16(swap); #else // SDL_BYTEORDER == SDL_BIG_ENDIAN memcpy(&value, mData + CAST_SIZE(mPos), sizeof(uint16_t)); #endif // SDL_BYTEORDER == SDL_BIG_ENDIAN } DEBUGLOG2("readUInt16: " + toStringPrint(CAST_U32( CAST_U16(value))), mPos, str); mPos += 2; PacketCounters::incInBytes(2); return value; }