flux-marshaller

flux-marshaller —

Synopsis




#define     FLUX_MARSHALLER                 (obj)
#define     FLUX_MARSHALLER_CLEAR
#define     FLUX_MARSHAL_TYPED_INT          (name, type, struct_type, member, substitute_default, default)
#define     FLUX_MARSHAL_TYPED_UINT         (name, type, struct_type, member, substitute_default, default)
#define     FLUX_MARSHAL_BOOLEAN            (name, struct_type, member, substitute_default, default)
#define     FLUX_MARSHAL_INT8               (name, struct_type, member, substitute_default, default)
#define     FLUX_MARSHAL_UINT8              (name, struct_type, member, substitute_default, default)
#define     FLUX_MARSHAL_INT16              (name, struct_type, member, substitute_default, default)
#define     FLUX_MARSHAL_UINT16             (name, struct_type, member, substitute_default, default)
#define     FLUX_MARSHAL_INT32              (name, struct_type, member, substitute_default, default)
#define     FLUX_MARSHAL_UINT32             (name, struct_type, member, substitute_default, default)
#define     FLUX_MARSHAL_INT64              (name, struct_type, member, substitute_default, default)
#define     FLUX_MARSHAL_UINT64             (name, struct_type, member, substitute_default, default)
#define     FLUX_MARSHAL_FLOAT32            (name, struct_type, member, substitute_default, default)
#define     FLUX_MARSHAL_FLOAT64            (name, struct_type, member, substitute_default, default)
#define     FLUX_MARSHAL_RAW_DYNAMIC        (name, struct_type, member, meta_member, substitute_default, default)
#define     FLUX_MARSHAL_RAW_FIXED          (name, struct_type, member, substitute_default, default)
#define     FLUX_MARSHAL_STRING_DYNAMIC     (name, struct_type, member, substitute_default, default)
#define     FLUX_MARSHAL_STRING_FIXED       (name, struct_type, member, substitute_default, default)
#define     FLUX_MARSHAL_STRUCT_DYNAMIC     (name, struct_type, member, substitute_zero, sub_struct_name)
#define     FLUX_MARSHAL_STRUCT_FIXED       (name, struct_type, member, substitute_zero, sub_struct_name)
#define     FLUX_MARSHAL_BRANCH_BEGIN       (name)
#define     FLUX_MARSHAL_BRANCH_END         ()
#define     FLUX_MARSHAL_END                ()
struct      FluxMarshaller;
struct      FluxMarshalledStruct;
struct      FluxMarshalledStructEntry;
FluxMarshaller* flux_marshaller_new         (void);
void        flux_marshaller_init            (FluxMarshaller *marshaller);
void        flux_marshaller_finalize        (FluxObject *object);
gboolean    flux_marshaller_register        (FluxMarshaller *marshaller,
                                             gchar *struct_name,
                                             gint struct_size,
                                             guint flags,
                                             FluxMarshalledStructEntry *struct_entries);
gint        flux_marshaller_register_many   (FluxMarshaller *marshaller,
                                             FluxMarshalledStruct *structs);
gboolean    flux_marshaller_unregister      (FluxMarshaller *marshaller,
                                             const gchar *struct_name);
gint        flux_marshaller_unregister_many (FluxMarshaller *marshaller,
                                             FluxMarshalledStruct *structs);
gint        flux_marshaller_unregister_all  (FluxMarshaller *marshaller);
FluxTree*   flux_marshaller_encode_tree     (FluxMarshaller *marshaller,
                                             const gchar *struct_name,
                                             gconstpointer struct_ptr);
gboolean    flux_marshaller_decode_tree     (FluxMarshaller *marshaller,
                                             FluxTree *tree,
                                             gchar **struct_name,
                                             gpointer *struct_ptr);
gboolean    flux_marshaller_encode_pack     (FluxMarshaller *marshaller,
                                             const gchar *struct_name,
                                             gconstpointer struct_ptr,
                                             gpointer *pack_ptr,
                                             guint *pack_len);
gboolean    flux_marshaller_decode_pack     (FluxMarshaller *marshaller,
                                             const gchar *struct_name,
                                             gconstpointer pack_ptr,
                                             guint pack_len,
                                             gpointer *struct_ptr);

Description

Details

FLUX_MARSHALLER()

#define FLUX_MARSHALLER(obj) ((FluxMarshaller *) (obj))

obj :

FLUX_MARSHALLER_CLEAR

#define FLUX_MARSHALLER_CLEAR (1 << 0)


FLUX_MARSHAL_TYPED_INT()

#define     FLUX_MARSHAL_TYPED_INT(name, type, struct_type, member, substitute_default, default)

name :
type :
struct_type :
member :
substitute_default :
default :

FLUX_MARSHAL_TYPED_UINT()

#define     FLUX_MARSHAL_TYPED_UINT(name, type, struct_type, member, substitute_default, default)

name :
type :
struct_type :
member :
substitute_default :
default :

FLUX_MARSHAL_BOOLEAN()

#define     FLUX_MARSHAL_BOOLEAN(name, struct_type, member, substitute_default, default)

name :
struct_type :
member :
substitute_default :
default :

FLUX_MARSHAL_INT8()

#define     FLUX_MARSHAL_INT8(name, struct_type, member, substitute_default, default)

name :
struct_type :
member :
substitute_default :
default :

FLUX_MARSHAL_UINT8()

#define     FLUX_MARSHAL_UINT8(name, struct_type, member, substitute_default, default)

name :
struct_type :
member :
substitute_default :
default :

FLUX_MARSHAL_INT16()

#define     FLUX_MARSHAL_INT16(name, struct_type, member, substitute_default, default)

name :
struct_type :
member :
substitute_default :
default :

FLUX_MARSHAL_UINT16()

#define     FLUX_MARSHAL_UINT16(name, struct_type, member, substitute_default, default)

name :
struct_type :
member :
substitute_default :
default :

FLUX_MARSHAL_INT32()

#define     FLUX_MARSHAL_INT32(name, struct_type, member, substitute_default, default)

name :
struct_type :
member :
substitute_default :
default :

FLUX_MARSHAL_UINT32()

#define     FLUX_MARSHAL_UINT32(name, struct_type, member, substitute_default, default)

name :
struct_type :
member :
substitute_default :
default :

FLUX_MARSHAL_INT64()

#define     FLUX_MARSHAL_INT64(name, struct_type, member, substitute_default, default)

name :
struct_type :
member :
substitute_default :
default :

FLUX_MARSHAL_UINT64()

#define     FLUX_MARSHAL_UINT64(name, struct_type, member, substitute_default, default)

name :
struct_type :
member :
substitute_default :
default :

FLUX_MARSHAL_FLOAT32()

#define     FLUX_MARSHAL_FLOAT32(name, struct_type, member, substitute_default, default)

name :
struct_type :
member :
substitute_default :
default :

FLUX_MARSHAL_FLOAT64()

#define     FLUX_MARSHAL_FLOAT64(name, struct_type, member, substitute_default, default)

name :
struct_type :
member :
substitute_default :
default :

FLUX_MARSHAL_RAW_DYNAMIC()

#define     FLUX_MARSHAL_RAW_DYNAMIC(name, struct_type, member, meta_member, substitute_default, default)

name :
struct_type :
member :
meta_member :
substitute_default :
default :

FLUX_MARSHAL_RAW_FIXED()

#define     FLUX_MARSHAL_RAW_FIXED(name, struct_type, member, substitute_default, default)

name :
struct_type :
member :
substitute_default :
default :

FLUX_MARSHAL_STRING_DYNAMIC()

#define     FLUX_MARSHAL_STRING_DYNAMIC(name, struct_type, member, substitute_default, default)

name :
struct_type :
member :
substitute_default :
default :

FLUX_MARSHAL_STRING_FIXED()

#define     FLUX_MARSHAL_STRING_FIXED(name, struct_type, member, substitute_default, default)

name :
struct_type :
member :
substitute_default :
default :

FLUX_MARSHAL_STRUCT_DYNAMIC()

#define     FLUX_MARSHAL_STRUCT_DYNAMIC(name, struct_type, member, substitute_zero, sub_struct_name)

name :
struct_type :
member :
substitute_zero :
sub_struct_name :

FLUX_MARSHAL_STRUCT_FIXED()

#define     FLUX_MARSHAL_STRUCT_FIXED(name, struct_type, member, substitute_zero, sub_struct_name)

name :
struct_type :
member :
substitute_zero :
sub_struct_name :

FLUX_MARSHAL_BRANCH_BEGIN()

#define     FLUX_MARSHAL_BRANCH_BEGIN(name)

name :

FLUX_MARSHAL_BRANCH_END()

#define     FLUX_MARSHAL_BRANCH_END()


FLUX_MARSHAL_END()

#define     FLUX_MARSHAL_END()


struct FluxMarshaller

struct FluxMarshaller {

  FluxObject          obj;

  GHashTable         *types;
};


struct FluxMarshalledStruct

struct FluxMarshalledStruct {

  gchar                     *name;
  gint                       size;
  guint                      flags;
  FluxMarshalledStructEntry *entries;
};


struct FluxMarshalledStructEntry

struct FluxMarshalledStructEntry {

  gchar                         *name;
  FluxMarshalledStructEntryType  type;
  glong                          offset;
  gint                           size;
  glong                          meta_offset;
  gint                           meta_size;
  gboolean                       substitute_default;
  gpointer                       default_value;
};


flux_marshaller_new ()

FluxMarshaller* flux_marshaller_new         (void);

Returns :

flux_marshaller_init ()

void        flux_marshaller_init            (FluxMarshaller *marshaller);

marshaller :

flux_marshaller_finalize ()

void        flux_marshaller_finalize        (FluxObject *object);

object :

flux_marshaller_register ()

gboolean    flux_marshaller_register        (FluxMarshaller *marshaller,
                                             gchar *struct_name,
                                             gint struct_size,
                                             guint flags,
                                             FluxMarshalledStructEntry *struct_entries);

marshaller :
struct_name :
struct_size :
flags :
struct_entries :
Returns :

flux_marshaller_register_many ()

gint        flux_marshaller_register_many   (FluxMarshaller *marshaller,
                                             FluxMarshalledStruct *structs);

marshaller :
structs :
Returns :

flux_marshaller_unregister ()

gboolean    flux_marshaller_unregister      (FluxMarshaller *marshaller,
                                             const gchar *struct_name);

marshaller :
struct_name :
Returns :

flux_marshaller_unregister_many ()

gint        flux_marshaller_unregister_many (FluxMarshaller *marshaller,
                                             FluxMarshalledStruct *structs);

marshaller :
structs :
Returns :

flux_marshaller_unregister_all ()

gint        flux_marshaller_unregister_all  (FluxMarshaller *marshaller);

marshaller :
Returns :

flux_marshaller_encode_tree ()

FluxTree*   flux_marshaller_encode_tree     (FluxMarshaller *marshaller,
                                             const gchar *struct_name,
                                             gconstpointer struct_ptr);

marshaller :
struct_name :
struct_ptr :
Returns :

flux_marshaller_decode_tree ()

gboolean    flux_marshaller_decode_tree     (FluxMarshaller *marshaller,
                                             FluxTree *tree,
                                             gchar **struct_name,
                                             gpointer *struct_ptr);

marshaller :
tree :
struct_name :
struct_ptr :
Returns :

flux_marshaller_encode_pack ()

gboolean    flux_marshaller_encode_pack     (FluxMarshaller *marshaller,
                                             const gchar *struct_name,
                                             gconstpointer struct_ptr,
                                             gpointer *pack_ptr,
                                             guint *pack_len);

marshaller :
struct_name :
struct_ptr :
pack_ptr :
pack_len :
Returns :

flux_marshaller_decode_pack ()

gboolean    flux_marshaller_decode_pack     (FluxMarshaller *marshaller,
                                             const gchar *struct_name,
                                             gconstpointer pack_ptr,
                                             guint pack_len,
                                             gpointer *struct_ptr);

marshaller :
struct_name :
pack_ptr :
pack_len :
struct_ptr :
Returns :