26 #include "../Exception.h" 27 #include "../Util/MR_Types.h" 28 #include "../Util/OS.h" 30 #if defined(_WIN32) && defined(HR_ENGINE_SHARED) 32 # define MR_DllDeclare __declspec( dllexport ) 34 # define MR_DllDeclare __declspec( dllimport ) 37 # define MR_DllDeclare 64 name(name), version(version), writing(writing)
74 virtual void Write(
const void *buf,
size_t ct) = 0;
76 virtual void WriteUInt8(
MR_UInt8 i) = 0;
79 virtual void WriteInt16(
MR_Int16 i) = 0;
82 virtual void WriteUInt16(
MR_UInt16 i) = 0;
85 virtual void WriteInt32(
MR_Int32 i) = 0;
88 virtual void WriteUInt32(
MR_UInt32 i) = 0;
91 virtual void WriteString(
const std::string &s) = 0;
94 # if defined(_WIN32) && !defined(WITH_OBJSTREAM) 95 virtual void WriteCString(
const CString &s) = 0;
99 virtual void Read(
void *buf,
size_t ct) = 0;
101 virtual void ReadUInt8(
MR_UInt8 &i) = 0;
104 virtual void ReadInt16(
MR_Int16 &i) = 0;
107 virtual void ReadUInt16(
MR_UInt16 &i) = 0;
110 virtual void ReadInt32(
MR_Int32 &i) = 0;
113 virtual void ReadUInt32(
MR_UInt32 &i) = 0;
116 virtual void ReadString(std::string &s) = 0;
119 # if defined(_WIN32) && !defined(WITH_OBJSTREAM) 120 virtual void ReadCString(CString &s) = 0;
friend ObjStream & operator<<(ObjStream &os, MR_UInt32 i)
Definition: ObjStream.h:89
boost::filesystem::path path_t
Definition: OS.h:57
int version
Definition: ObjStream.h:126
uint16_t MR_UInt16
Definition: MR_Types.h:42
Util::OS::path_t name
Definition: ObjStream.h:125
friend ObjStream & operator>>(ObjStream &os, MR_UInt16 &i)
Definition: ObjStream.h:108
#define MR_DllDeclare
Definition: ObjStream.h:37
virtual void WriteUInt32(MR_UInt32 i)=0
friend ObjStream & operator>>(ObjStream &os, std::string &s)
Definition: ObjStream.h:117
friend ObjStream & operator<<(ObjStream &os, const std::string &s)
Definition: ObjStream.h:92
ObjStreamExn()
Definition: ObjStream.h:48
ObjStream()
Definition: ObjStream.h:61
virtual void ReadString(std::string &s)=0
virtual ~ObjStreamExn() noexcept
Definition: ObjStream.h:51
bool IsWriting() const
Definition: ObjStream.h:71
std::exception SUPER
Definition: Exception.h:44
ObjStreamExn(const std::string &msg)
Definition: ObjStream.h:49
friend ObjStream & operator<<(ObjStream &os, MR_Int16 i)
Definition: ObjStream.h:80
std::shared_ptr< ObjStream > ObjStreamPtr
Definition: ObjStream.h:129
virtual void ReadUInt16(MR_UInt16 &i)=0
friend ObjStream & operator<<(ObjStream &os, MR_UInt16 i)
Definition: ObjStream.h:83
virtual void WriteInt16(MR_Int16 i)=0
friend ObjStream & operator>>(ObjStream &os, MR_Int32 &i)
Definition: ObjStream.h:111
ObjStream(const Util::OS::path_t &name, int version, bool writing)
Definition: ObjStream.h:63
Definition: ObjStream.h:43
Base class for parcel serializers.
Definition: ObjStream.h:58
int16_t MR_Int16
Definition: MR_Types.h:41
int32_t MR_Int32
Definition: MR_Types.h:43
friend ObjStream & operator>>(ObjStream &os, MR_Int16 &i)
Definition: ObjStream.h:105
bool writing
Definition: ObjStream.h:127
int GetVersion() const
Definition: ObjStream.h:70
virtual void ReadUInt8(MR_UInt8 &i)=0
virtual void ReadInt16(MR_Int16 &i)=0
virtual ~ObjStream()
Definition: ObjStream.h:66
virtual void WriteInt32(MR_Int32 i)=0
virtual void WriteUInt16(MR_UInt16 i)=0
std::ostream & operator<<(std::ostream &os, const Vec2 &v)
Definition: Vec.h:48
virtual void ReadUInt32(MR_UInt32 &i)=0
Definition: Announcement.h:24
virtual void ReadInt32(MR_Int32 &i)=0
friend ObjStream & operator<<(ObjStream &os, MR_Int32 i)
Definition: ObjStream.h:86
uint32_t MR_UInt32
Definition: MR_Types.h:44
friend ObjStream & operator>>(ObjStream &os, MR_UInt8 &i)
Definition: ObjStream.h:102
virtual void WriteString(const std::string &s)=0
Base exception, providing constructors for setting the message.
Definition: Exception.h:42
friend ObjStream & operator>>(ObjStream &os, MR_UInt32 &i)
Definition: ObjStream.h:114
const Util::OS::path_t & GetName() const
Definition: ObjStream.h:69
virtual void WriteUInt8(MR_UInt8 i)=0
uint8_t MR_UInt8
Definition: MR_Types.h:40
friend ObjStream & operator<<(ObjStream &os, MR_UInt8 i)
Definition: ObjStream.h:77
std::istream & operator>>(std::istream &in, RoomList::IpAddr &ip)
Definition: RoomList.cpp:176