const packet_consumer_vmt_t *ffsox_packet_consumer_get_vmt(void) { const node_vmt_t *parent; if (NULL==vmt.parent) { parent=ffsox_node_get_vmt(); vmt.node=*parent; vmt.parent=parent; vmt.name="packet_consumer"; vmt.prev=packet_consumer_prev; vmt.set_packet=packet_consumer_set_packet; } return &vmt; }
const source_vmt_t *ffsox_source_get_vmt(void) { const node_vmt_t *parent; if (NULL==vmt.parent) { parent=ffsox_node_get_vmt(); vmt.node=*parent; vmt.parent=parent; vmt.name="source"; vmt.cleanup=source_cleanup; vmt.next=source_next; vmt.run=source_run; } return &vmt; }