|
|
|
@ -30,20 +30,42 @@ |
|
|
|
#include "tr/interface.h" |
|
|
|
|
|
|
|
|
|
|
|
//typedef size_t (* fptr_serializeSize)(void *); |
|
|
|
typedef void (* fptr_serialize)(void *, unsigned char **, size_t *); |
|
|
|
typedef void (* fptr_unserialize)(void *, const unsigned char *, size_t); |
|
|
|
|
|
|
|
TR_INTERFACE(TR_Serializable) { |
|
|
|
TR_IFID; |
|
|
|
// fptr_serializeSize serializeSize; |
|
|
|
fptr_serialize serialize; |
|
|
|
fptr_unserialize unserialize; |
|
|
|
}; |
|
|
|
|
|
|
|
//size_t TR_serializeSize(void *); |
|
|
|
void TR_serialize(void *, unsigned char **, size_t *); |
|
|
|
void TR_unserialize(void *, const unsigned char *, size_t); |
|
|
|
/** |
|
|
|
* Serialize the given instance to a byte array |
|
|
|
*/ |
|
|
|
inline |
|
|
|
void |
|
|
|
TR_serialize( |
|
|
|
void * serializable, |
|
|
|
unsigned char ** serialized, |
|
|
|
size_t * nserialized) |
|
|
|
{ |
|
|
|
TR_CALL(serializable, TR_Serializable, serialize, serialized, |
|
|
|
nserialized); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* Unerialize the given instance to a byte array |
|
|
|
*/ |
|
|
|
inline |
|
|
|
void |
|
|
|
TR_unserialize( |
|
|
|
void * serializable, |
|
|
|
const unsigned char * serialized, |
|
|
|
size_t nserialized) |
|
|
|
{ |
|
|
|
TR_CALL(serializable, TR_Serializable, unserialize, serialized, |
|
|
|
nserialized); |
|
|
|
} |
|
|
|
|
|
|
|
#endif // __TR_SERIALIZABLE_H__ |
|
|
|
|
|
|
|
|