X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;ds=sidebyside;f=Usermode%2FApplications%2Faxwin4_src%2FCommon%2Fserialisation.cpp;fp=Usermode%2FApplications%2Faxwin4_src%2FCommon%2Fserialisation.cpp;h=016b000456aaf99733c9d50e93355701f0a60474;hb=f3bdde1ff0ec3cf20c1371a50eb37a0907fe00c5;hp=f23d5cd8d09061310a484c195d1deb1c8de2da63;hpb=c1b33e91984102c1aa9a2ffe19f02c315b481726;p=tpg%2Facess2.git diff --git a/Usermode/Applications/axwin4_src/Common/serialisation.cpp b/Usermode/Applications/axwin4_src/Common/serialisation.cpp index f23d5cd8..016b0004 100644 --- a/Usermode/Applications/axwin4_src/Common/serialisation.cpp +++ b/Usermode/Applications/axwin4_src/Common/serialisation.cpp @@ -58,6 +58,20 @@ bool CDeserialiser::IsConsumed() const return ~rv_u + 1; } +::uint32_t CDeserialiser::ReadU32() +{ + uint32_t rv = ReadU16(); + rv |= (uint32_t)ReadU16() << 16; + return rv; +} + +::uint64_t CDeserialiser::ReadU64() +{ + uint64_t rv = ReadU32(); + rv |= (uint64_t)ReadU32() << 32; + return rv; +} + const ::std::vector CDeserialiser::ReadBuffer() { RangeCheck("CDeserialiser::ReadBuffer(len)", 2); @@ -116,6 +130,20 @@ void CSerialiser::WriteS16(::int16_t Value) } } +void CSerialiser::WriteU32(::uint32_t Value) +{ + m_data.push_back(Value & 0xFF); + m_data.push_back(Value >> 8); + m_data.push_back(Value >> 16); + m_data.push_back(Value >> 24); +} + +void CSerialiser::WriteU64(::uint64_t Value) +{ + WriteU32(Value); + WriteU32(Value>>32); +} + void CSerialiser::WriteBuffer(size_t n, const void* val) { const uint8_t* val8 = static_cast(val);