36 #ifndef ZENI_SERIALIZATION_H
37 #define ZENI_SERIALIZATION_H
41 #include <SDL/SDL_net.h>
60 ZENI_DLL String
ustoa(
const unsigned short &number);
61 ZENI_DLL String
stoa(
const short &number);
62 ZENI_DLL String
uitoa(
const unsigned int &number);
63 ZENI_DLL String
itoa(
const int &number);
64 ZENI_DLL String
ultoa(
const unsigned long &number);
65 ZENI_DLL String
ltoa(
const long &number);
67 ZENI_DLL String
ulltoa(
const unsigned long long &number);
68 ZENI_DLL String
lltoa(
const long long &number);
70 ZENI_DLL String
ulltoa(
const unsigned long &number);
71 ZENI_DLL String
lltoa(
const long &number);
73 ZENI_DLL String
ftoa(
const float &number);
74 ZENI_DLL String
ftoa(
const float &number,
const unsigned int &
precision);
75 ZENI_DLL String
dtoa(
const double &number);
76 ZENI_DLL String
dtoa(
const double &number,
const unsigned int &
precision);
77 ZENI_DLL String
ldtoa(
const long double &number);
80 ZENI_DLL
size_t grab_bytes(std::istream &is,
char *
const &store,
const size_t &num_bytes);
81 ZENI_DLL
size_t grab_bytes(std::istream &is, String &store,
const size_t &num_bytes);
88 virtual Uint16 size()
const {
return sizeof(m_size) + m_size;}
90 virtual std::ostream &
serialize(std::ostream &os)
const = 0;
91 virtual std::istream &
unserialize(std::istream &is) = 0;
106 ZENI_DLL std::ostream &
serialize(std::ostream &os,
const char &
value);
107 ZENI_DLL std::ostream &
serialize(std::ostream &os,
const unsigned char &
value);
108 ZENI_DLL std::ostream &
serialize(std::ostream &os,
const float &
value);
109 ZENI_DLL std::ostream &
serialize(std::ostream &os,
const double &
value);
112 ZENI_DLL std::ostream &
serialize(std::ostream &os,
const String &
string);
122 ZENI_DLL std::istream &
unserialize(std::istream &is,
unsigned char &
value);
127 ZENI_DLL std::istream &
unserialize(std::istream &is, String &
string);
129 template <
typename TYPE>
130 std::ostream &
serialize(std::ostream &os,
const std::list<TYPE> &list_) {
132 for(
typename std::list<TYPE>::const_iterator it = list_.begin(); it != list_.end(); ++it)
138 template <
typename TYPE>
139 std::istream &
unserialize(std::istream &is, std::list<TYPE> &list_) {
154 template <
typename TYPE>
155 std::ostream &
serialize(std::ostream &os,
const std::set<TYPE> &list_) {
157 for(
typename std::set<TYPE>::const_iterator it = list_.begin(); it != list_.end(); ++it)
163 template <
typename TYPE>
164 std::istream &
unserialize(std::istream &is, std::set<TYPE> &list_) {
179 template <
typename TYPE>
180 std::ostream &
serialize(std::ostream &os,
const std::vector<TYPE> &list_) {
182 for(
typename std::vector<TYPE>::const_iterator it = list_.begin(); it != list_.end(); ++it)
188 template <
typename TYPE>
189 std::istream &
unserialize(std::istream &is, std::vector<TYPE> &list_) {
bool operator>(const TiXmlString &a, const TiXmlString &b)
int32_t Sint32
A signed 32-bit integer type.
String stoa(const short &number)
String uitoa(const unsigned int &number)
String ustoa(const unsigned short &number)
bool operator<(const TiXmlString &a, const TiXmlString &b)
virtual Uint16 size() const
bool operator==(const SourceLocation &lhs, const SourceLocation &rhs)
String ltoa(const long &number)
String lltoa(const long &number)
String dtoa(const double &number)
std::istream & unserialize(std::istream &is, Color &value)
std::ostream & serialize(std::ostream &os, const Color &value)
uint32_t Uint32
An unsigned 32-bit integer type.
virtual std::istream & unserialize(std::istream &is)=0
String ftoa(const float &number)
String itoa(const int &number)
GLuint GLuint64EXT address
size_t grab_bytes(std::istream &is, char *const &store, const size_t &num_bytes)
bool operator!=(const SourceLocation &lhs, const SourceLocation &rhs)
String iptoa(const IPaddress &address)
EGLSurface EGLint void ** value
String ldtoa(const long double &number)
bool operator>=(const TiXmlString &a, const TiXmlString &b)
int16_t Sint16
A signed 16-bit integer type.
A base class for objects that can be sent over the network.
virtual std::ostream & serialize(std::ostream &os) const =0
uint16_t Uint16
An unsigned 16-bit integer type.
GLenum GLint GLint * precision
bool operator<=(const TiXmlString &a, const TiXmlString &b)
String ulltoa(const unsigned long &number)
String ultoa(const unsigned long &number)
int8_t Sint8
A signed 8-bit integer type.