#include #include #include /*** PRIVATE DATA *************************************************************/ /*** PRIVATE FUNCTIONS ********************************************************/ /*** PUBLIC FUNCTIONS *********************************************************/ /*** PUBLIC ALIAS FUNCTIONS ***************************************************/ /*** VIRTUAL FUNCTIONS ********************************************************/ static void serial_ctx_init(fx_object *obj, void *priv) { fx_serial_ctx_data *data = fx_object_get_protected(obj, FX_TYPE_SERIAL_CTX); data->ctx_streambuf = fx_stream_buffer_create_dynamic(2048); } static void serial_ctx_fini(fx_object *obj, void *priv) { fx_serial_ctx_data *data = fx_object_get_protected(obj, FX_TYPE_SERIAL_CTX); fx_stream_buffer_unref(data->ctx_streambuf); } /*** CLASS DEFINITION *********************************************************/ FX_TYPE_CLASS_DEFINITION_BEGIN(fx_serial_ctx) FX_TYPE_CLASS_INTERFACE_BEGIN(fx_object, FX_TYPE_OBJECT) FX_INTERFACE_ENTRY(to_string) = NULL; FX_TYPE_CLASS_INTERFACE_END(fx_object, FX_TYPE_OBJECT) FX_TYPE_CLASS_DEFINITION_END(fx_serial_ctx) FX_TYPE_DEFINITION_BEGIN(fx_serial_ctx) FX_TYPE_ID(0xc7c1039a, 0xf397, 0x4fda, 0xb473, 0x4d86fec85384); FX_TYPE_CLASS(fx_serial_ctx_class); FX_TYPE_INSTANCE_PROTECTED(fx_serial_ctx_data); FX_TYPE_INSTANCE_INIT(serial_ctx_init); FX_TYPE_INSTANCE_FINI(serial_ctx_fini); FX_TYPE_DEFINITION_END(fx_serial_ctx) /*** ITERATOR FUNCTIONS *******************************************************/ enum fx_status fx_serial_ctx_serialise( fx_serial_ctx *ctx, fx_object *src, fx_stream *dest, enum fx_serial_flags flags) { FX_CLASS_DISPATCH_VIRTUAL( fx_serial_ctx, FX_TYPE_SERIAL_CTX, FX_ERR_NOT_SUPPORTED, s_serialise, ctx, src, dest, flags); } enum fx_status fx_serial_ctx_deserialise( fx_serial_ctx *ctx, fx_stream *src, fx_object **dest, enum fx_serial_flags flags) { FX_CLASS_DISPATCH_VIRTUAL( fx_serial_ctx, FX_TYPE_SERIAL_CTX, FX_ERR_NOT_SUPPORTED, s_deserialise, ctx, src, dest, flags); }