Usermode/AxWin4 - Working in shared memory usage
[tpg/acess2.git] / Usermode / Applications / axwin4_src / Common / include / serialisation.hpp
index 7212018..54293c1 100644 (file)
@@ -23,15 +23,23 @@ class CDeserialiseException:
 
 class CDeserialiser
 {
-       const size_t    m_length;
-       const uint8_t*  m_data;
+       ::std::vector<uint8_t>  m_vect;
        size_t  m_offset;
 public:
-       CDeserialiser(size_t Length, const uint8_t *Buffer);
+       CDeserialiser():
+               CDeserialiser(::std::vector<uint8_t>())
+       {}
+       CDeserialiser(const ::std::vector<uint8_t>& vect);
+       CDeserialiser(::std::vector<uint8_t>&& vect);
+       CDeserialiser(const CDeserialiser& x) { *this = x; };
+       CDeserialiser& operator=(const CDeserialiser& x);
        bool    IsConsumed() const;
        ::uint8_t       ReadU8();
        ::uint16_t      ReadU16();
        ::int16_t       ReadS16();
+       ::uint32_t      ReadU32();
+       ::uint64_t      ReadU64();
+       const ::std::vector<uint8_t>    ReadBuffer();
        const ::std::string     ReadString();
 private:
        void RangeCheck(const char *Method, size_t bytes) throw(::std::out_of_range);
@@ -45,6 +53,8 @@ public:
        void WriteU8(::uint8_t val);
        void WriteU16(::uint16_t val);
        void WriteS16(::int16_t val);
+       void WriteU32(::uint32_t val);
+       void WriteU64(::uint64_t val);
        void WriteBuffer(size_t n, const void* val);
        void WriteString(const char* val, size_t n);
        void WriteString(const char* val) {

UCC git Repository :: git.ucc.asn.au