Sample
code
/* Initialization function */typedef int32_t (*ffh_mh_init_function)( ffh_mh_info *, /* handler info */
ffh_init_param *, /* array of init_param */
int32_t ); /* num ffhinit_param items *//* Finalization function */typedef void (*ffh_mh_fini_fuction)( ffh_mh_info * );/* Process Function */typedef int32_t (*ffh_mh_process_function)( ffh_mh_event * );/* Return value from the above functions which retun int32_t indicating success.
Any other values indicate an error and are defined internally by the library. */
#define FFH_MH_SUCESS 0
/* Callback functions */
typedef void (*ffh_mh_p_session_shutdown)( ffh_mh_info * );
typedef void (*ffh_mh_p_release_message)( ffh_mh_info *,
ffh_fast_message * );
typedef struct {const char * name;const char * value;}
ffh_init_param;typedef enum ffh_mh_event_type {MHET_RECEIVE_MESSAGE = 0};typedef struct {
int16_t version;
void * handlerID;
void * loggerID;
ffh_mh_p_session_shutdown shutdown;
ffh_mh_p_release_message release_message;
void * user_data;} ffh_mh_info;typedef struct { int16_t version;
ffh_mh_event_type event;
ffh_mh_info * info;
ffh_fast_message * message;
} ffh_mh_event;