00001
00013 #ifndef SERIALIZATION_H_
00014 #define SERIALIZATION_H_
00015
00016 #ifdef __cplusplus
00017 extern "C" {
00018 #endif
00019
00020 #include <stddef.h>
00021
00022 #include "messaging.h"
00023
00032 typedef struct serializer {
00033
00044 size_t (*size)(Message * message);
00045
00058 size_t (*serialize_to)(void * dest, Message * message, size_t limit);
00059
00074 Message *(*deserialize_from)(void * src, size_t size);
00075
00082 void (*free)(Message * message);
00083 } Serializer;
00084
00085 #ifdef __cplusplus
00086 }
00087 #endif
00088
00096 #endif