class IWriter // @suppress("Class has a virtual method and non-virtual destructor")
{
public:
virtual void Write(const void* buffer, const int& nSize) = 0;
public:
virtual void Write(const int8_t& i8) = 0;
virtual void Write(const int16_t& i16) = 0;
virtual void Write(const int32_t& i32) = 0;
virtual void Write(const int64_t& i64) = 0;
virtual void Write(const uint8_t& u8) = 0;
virtual void Write(const uint16_t& u16) = 0;
virtual void Write(const uint32_t& u32) = 0;
virtual void Write(const CGuid& guid) = 0;
virtual void Write(const std::string& str) = 0;
virtual void Write(const std::wstring& str) = 0;
virtual void Write(const bool& b) = 0;
virtual void Write(const float& f) = 0;
virtual void Write(const double& d) = 0;
};
class IReader // @suppress("Class has a virtual method and non-virtual destructor")
{
public:
virtual void Read(void* buffer, const int& nSize) = 0;
public:
virtual int8_t ReadInt8(void) = 0;
virtual int16_t ReadInt16(void) = 0;
virtual int32_t ReadInt32(void)= 0;
virtual int64_t ReadInt64(void)= 0;
virtual uint8_t ReadUInt8(void)= 0;
virtual uint16_t ReadUInt16(void)= 0;
virtual uint32_t ReadUInt32(void)= 0;
virtual uint64_t ReadUInt64(void)= 0;
virtual std::string ReadString(void)= 0;
virtual std::wstring ReadWString(void)= 0;
virtual CGuid ReadGuid(void)= 0;
virtual bool ReadBool(void)= 0;
virtual float ReadSingle(void)= 0;
virtual double ReadDouble(void)= 0;
};
class ISerializable // @suppress("Class has a virtual method and non-virtual destructor")
{
public:
virtual void Serialize(IWriter* writer) = 0;
virtual int Deserialize(IReader* reader ) = 0;
};