30 #define __BYTE_ORDER 0
31 #define __LITTLE_ENDIAN 0
32 #define __BIG_ENDIAN 1
33 #elif defined(__MACH__) && defined(__APPLE__)
34 #include <machine/endian.h>
35 #elif defined(__FreeBSD__) || defined(__DragonFly__)
36 #include <sys/endian.h>
46 #define FIXEDPOINT_FACTOR 1000.0f
55 #define F1000_MIN ((float)(s32)((float)(-0x7FFFFFFF - 1) / FIXEDPOINT_FACTOR))
56 #define F1000_MAX ((float)(s32)((float)(0x7FFFFFFF) / FIXEDPOINT_FACTOR))
58 #define STRING_MAX_LEN 0xFFFF
59 #define WIDE_STRING_MAX_LEN 0xFFFF
61 #define LONG_STRING_MAX_LEN (64 * 1024 * 1024)
70 inline u16
readU16(
const u8 *data)
73 memcpy(&val, data, 2);
77 inline u32
readU32(
const u8 *data)
80 memcpy(&val, data, 4);
84 inline u64
readU64(
const u8 *data)
87 memcpy(&val, data, 8);
91 inline void writeU16(u8 *data, u16 i)
94 memcpy(data, &val, 2);
97 inline void writeU32(u8 *data, u32 i)
100 memcpy(data, &val, 4);
103 inline void writeU64(u8 *data, u64 i)
105 u64 val = htobe64(i);
106 memcpy(data, &val, 8);
115 ((u16)data[0] << 8) | ((u16)data[1] << 0);
121 ((u32)data[0] << 24) | ((u32)data[1] << 16) |
122 ((u32)data[2] << 8) | ((u32)data[3] << 0);
128 ((u64)data[0] << 56) | ((u64)data[1] << 48) |
129 ((u64)data[2] << 40) | ((u64)data[3] << 32) |
130 ((u64)data[4] << 24) | ((u64)data[5] << 16) |
131 ((u64)data[6] << 8) | ((u64)data[7] << 0);
136 data[0] = (i >> 8) & 0xFF;
137 data[1] = (i >> 0) & 0xFF;
142 data[0] = (i >> 24) & 0xFF;
143 data[1] = (i >> 16) & 0xFF;
144 data[2] = (i >> 8) & 0xFF;
145 data[3] = (i >> 0) & 0xFF;
150 data[0] = (i >> 56) & 0xFF;
151 data[1] = (i >> 48) & 0xFF;
152 data[2] = (i >> 40) & 0xFF;
153 data[3] = (i >> 32) & 0xFF;
154 data[4] = (i >> 24) & 0xFF;
155 data[5] = (i >> 16) & 0xFF;
156 data[6] = (i >> 8) & 0xFF;
157 data[7] = (i >> 0) & 0xFF;
166 return ((u8)data[0] << 0);
283 data[0] = (i >> 0) & 0xFF;
384 #define MAKE_STREAM_READ_FXN(T, N, S) \
385 inline T read ## N(std::istream &is) \
388 is.read(buf, sizeof(buf)); \
389 return read ## N((u8 *)buf); \
392 #define MAKE_STREAM_WRITE_FXN(T, N, S) \
393 inline void write ## N(std::ostream &os, T val) \
396 write ## N((u8 *)buf, val); \
397 os.write(buf, sizeof(buf)); \
Definition: exceptions.h:60
u32 f32Tou32Slow(f32 f)
Definition: ieee_float.cpp:64
FloatType getFloatSerializationType()
Definition: ieee_float.cpp:95
f32 u32Tof32Slow(u32 i)
Definition: ieee_float.cpp:33
FloatType
Definition: ieee_float.h:25
@ FLOATTYPE_UNKNOWN
Definition: ieee_float.h:26
@ FLOATTYPE_SLOW
Definition: ieee_float.h:27
@ FLOATTYPE_SYSTEM
Definition: ieee_float.h:28
core::vector2d< s32 > v2s32
Definition: irr_v2d.h:28
core::vector2d< s16 > v2s16
Definition: irr_v2d.h:27
core::vector2d< f32 > v2f
Definition: irr_v2d.h:26
core::vector3d< s32 > v3s32
Definition: irr_v3d.h:30
core::vector3d< s16 > v3s16
Definition: irr_v3d.h:28
core::vector3df v3f
Definition: irr_v3d.h:26
std::string serializeJsonString(const std::string &plain)
Definition: serialize.cpp:126
v2s16 readV2S16(const u8 *data)
Definition: serialize.h:219
void writeU16(u8 *data, u16 i)
Definition: serialize.h:134
u32 readU32(const u8 *data)
Definition: serialize.h:118
void writeV3S16(u8 *data, v3s16 p)
Definition: serialize.h:340
std::string deSerializeJsonString(std::istream &is)
Definition: serialize.cpp:174
v2s32 readV2S32(const u8 *data)
Definition: serialize.h:236
void writeF1000(u8 *data, f32 i)
Definition: serialize.h:306
void writeS16(u8 *data, s16 i)
Definition: serialize.h:291
s64 readS64(const u8 *data)
Definition: serialize.h:184
#define FIXEDPOINT_FACTOR
Definition: serialize.h:46
void writeV2F32(u8 *data, v2f p)
Definition: serialize.h:367
void writeF32(u8 *data, f32 i)
Definition: serialize.h:312
void writeU64(u8 *data, u64 i)
Definition: serialize.h:148
s32 readS32(const u8 *data)
Definition: serialize.h:179
std::string deSerializeString32(std::istream &is)
Definition: serialize.cpp:95
std::string serializeString16(const std::string &plain)
Definition: serialize.cpp:38
u8 readU8(const u8 *data)
Definition: serialize.h:164
void writeV2S32(u8 *data, v2s32 p)
Definition: serialize.h:347
video::SColor readARGB8(const u8 *data)
Definition: serialize.h:213
std::string deSerializeJsonStringIfNeeded(std::istream &is)
Definition: serialize.cpp:249
v3f readV3F1000(const u8 *data)
Definition: serialize.h:253
v3s16 readV3S16(const u8 *data)
Definition: serialize.h:227
void writeV2S16(u8 *data, v2s16 p)
Definition: serialize.h:334
f32 readF32(const u8 *data)
Definition: serialize.h:194
f32 readF1000(const u8 *data)
Definition: serialize.h:189
void writeARGB8(u8 *data, video::SColor p)
Definition: serialize.h:329
#define MAKE_STREAM_READ_FXN(T, N, S)
Definition: serialize.h:384
FloatType g_serialize_f32_type
Definition: serialize.cpp:31
u64 readU64(const u8 *data)
Definition: serialize.h:125
void writeU32(u8 *data, u32 i)
Definition: serialize.h:140
std::string serializeString32(const std::string &plain)
Definition: serialize.cpp:80
void writeV3F32(u8 *data, v3f p)
Definition: serialize.h:373
void writeS8(u8 *data, s8 i)
Definition: serialize.h:286
std::string deSerializeString16(std::istream &is)
Definition: serialize.cpp:54
void writeV3S32(u8 *data, v3s32 p)
Definition: serialize.h:353
#define F1000_MIN
Definition: serialize.h:55
u16 readU16(const u8 *data)
Definition: serialize.h:112
v2f readV2F32(const u8 *data)
Definition: serialize.h:262
v3s32 readV3S32(const u8 *data)
Definition: serialize.h:244
void writeV3F1000(u8 *data, v3f p)
Definition: serialize.h:360
#define MAKE_STREAM_WRITE_FXN(T, N, S)
Definition: serialize.h:392
void writeU8(u8 *data, u8 i)
Definition: serialize.h:281
v3f readV3F32(const u8 *data)
Definition: serialize.h:270
void writeS32(u8 *data, s32 i)
Definition: serialize.h:296
s8 readS8(const u8 *data)
Definition: serialize.h:169
s16 readS16(const u8 *data)
Definition: serialize.h:174
std::string serializeJsonStringIfNeeded(const std::string &s)
Definition: serialize.cpp:240
#define F1000_MAX
Definition: serialize.h:56
void writeS64(u8 *data, s64 i)
Definition: serialize.h:301
std::string p(std::string path)
Definition: test_filepath.cpp:59