18 #ifndef INCLUDED_NETWORK_SERIALIZATION 19 #define INCLUDED_NETWORK_SERIALIZATION 21 #define Serialize_int_1(_pos, _val) \ 22 STMT( *((_pos)++) = (u8)((_val)&0xff); ) 24 #define Serialize_int_2(_pos, _val) STMT(\ 25 Serialize_int_1(_pos, (_val)>>8); \ 26 Serialize_int_1(_pos, (_val)); \ 29 #define Serialize_int_3(_pos, _val) STMT(\ 30 Serialize_int_1(_pos, (_val)>>16); \ 31 Serialize_int_2(_pos, (_val)); \ 34 #define Serialize_int_4(_pos, _val) STMT(\ 35 Serialize_int_1(_pos, (_val)>>24); \ 36 Serialize_int_3(_pos, (_val)); \ 39 #define Serialize_int_8(_pos, _val) STMT(\ 40 Serialize_int_4(_pos, (_val)>>32); \ 41 Serialize_int_4(_pos, (_val)); \ 44 #define __shift_de(_pos, _val) STMT( \ 46 (_val) += *((_pos)++); ) 48 #define Deserialize_int_1(_pos, _val) STMT(\ 49 (_val) = *((_pos)++); ) 51 #define Deserialize_int_2(_pos, _val) STMT(\ 52 Deserialize_int_1(_pos, _val); \ 53 __shift_de(_pos, _val); ) 55 #define Deserialize_int_3(_pos, _val) STMT(\ 56 Deserialize_int_2(_pos, _val); \ 57 __shift_de(_pos, _val); ) 59 #define Deserialize_int_4(_pos, _val) STMT(\ 60 Deserialize_int_3(_pos, _val); \ 61 __shift_de(_pos, _val); ) 63 #define Deserialize_int_8(_pos, _val) STMT(\ 64 uint32 _v1; uint32 _v2; \ 65 Deserialize_int_4(_pos, _v1); \ 66 Deserialize_int_4(_pos, _v2); \ virtual const u8 * Deserialize(const u8 *buffer, const u8 *end)=0
Deserialize the object (i.e.
uint8_t u8
Definition: types.h:37
virtual ~ISerializable()
Definition: Serialization.h:78
virtual u8 * Serialize(u8 *buffer) const =0
Serialize the object into the passed buffer.
An interface for serializable objects.
Definition: Serialization.h:75
virtual size_t GetSerializedLength() const =0
Return the length of the serialized form of this object.