typedef void (*PK_ATTDEF_split_callback_f_t) ( PK_ENTITY_t old_entity, int n_attribs, const PK_ATTRIB_t attribs[], PK_ENTITY_t new_entity ); typedef void (*PK_ATTDEF_merge_callback_f_t) ( PK_ENTITY_t live_entity, int n_live_attribs, const PK_ATTRIB_t live_attribs[], PK_ENTITY_t doomed_entity, int n_doomed_attribs, const PK_ATTRIB_t doomed_attribs[] ); typedef void (*PK_ATTDEF_delete_callback_f_t) ( PK_ENTITY_t entity, int n_attribs, const PK_ATTRIB_t attribs[] ); typedef void (*PK_ATTDEF_copy_callback_f_t) ( PK_ENTITY_t old_entity, int n_attribs, const PK_ATTRIB_t attribs[], PK_ENTITY_t new_entity ); typedef void (*PK_ATTDEF_transmit_callback_f_t) ( PK_ENTITY_t entity, int n_attribs, const PK_ATTRIB_t attribs[] ); typedef void (*PK_ATTDEF_receive_callback_f_t) ( PK_ENTITY_t entity, int n_attribs, const PK_ATTRIB_t attribs[] ); typedef struct PK_ATTDEF_callback_fns_s { PK_ATTDEF_split_callback_f_t split_fn; PK_ATTDEF_merge_callback_f_t merge_fn; PK_ATTDEF_delete_callback_f_t delete_fn; PK_ATTDEF_copy_callback_f_t copy_fn; PK_ATTDEF_transmit_callback_f_t transmit_fn; PK_ATTDEF_receive_callback_f_t receive_fn; } PK_ATTDEF_callback_fns_t; This data structure holds pointers to the functions the application wishes to register with the PK using PK_ATTDEF_register_callbacks or PK_ATTDEF_register_cb. Any of these may be NULL.