The Assimilation Project
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
frame.h
Go to the documentation of this file.
1 
27 #ifndef _FRAME_H
28 #define _FRAME_H
29 #include <projectcommon.h>
30 #include <assimobj.h>
31 #include <generic_tlv_min.h>
32 typedef struct _FrameSet FrameSet;
33 typedef struct _Frame Frame;
34 
37 
43 struct _Frame {
45  guint16 type;
46  guint16 length;
47  gpointer value;
48  gsize (*dataspace)(const Frame* self);
49  void (*updatedata)(Frame* self, gpointer tlvptr, gconstpointer pktend, FrameSet* fs);
50  gboolean (*isvalid)(const Frame* self, gconstpointer tlvptr, gconstpointer pktend);
51 
52  void (*setvalue)(Frame* self,
53  gpointer value,
54  guint16 length,
55  GDestroyNotify valfinal);
56  void (*dump)(const Frame* self, const char * prefix);
57  GDestroyNotify valuefinalize;
58 };
59 #define FRAME_INITSIZE GENERICTLV_HDRSZ
60 WINEXPORT Frame* frame_new(guint16 frame_type, gsize framesize);
61 WINEXPORT Frame* frame_tlvconstructor(gconstpointer tlvstart, gconstpointer pktend);
62 WINEXPORT void frame_default_valuefinalize(gpointer value);
64 
65 #endif /* _FRAME_H */