#include #include "../method_dispatcher.h" char m1(uint8_t small_arg, void * state); char m2(uint8_t small_arg, void * state); char m3(uint8_t small_arg, void * state); char m4(uint8_t small_arg, void * state); char m5(uint8_t small_arg, void * state); int main(void) { printf("sizeof struct dispatch_tree_node_s: %zd\n", sizeof(struct dispatch_tree_node_s)); dispatch_tree_t tree = dispatch_tree_t_new(); dispatch_tree_t_insert(tree, 3 << 6, m3); dispatch_tree_t_insert(tree, 2 << 6, m2); dispatch_tree_t_insert(tree, 1 << 6, m1); dispatch_tree_t_insert(tree, 4 << 6, m4); dispatch_tree_t_insert(tree, 5 << 6, m5); int i; for(i = 1; i < 6; i++) { dispatch_tree_t_dispatch(tree, i << 6)(i, NULL); } dispatch_tree_t_del(tree); bci_core_method_t methods[5] = {m1, m2, m3, m4, m5}; tree = dispatch_tree_t_new(); dispatch_tree_autoinserter_t inserter = dispatch_tree_autoinserter_t_new(tree); for(i = 0; i < 5; i++) { printf("%u\n", dispatch_tree_autoinserter_t_insert(inserter, methods[i])); } dispatch_tree_autoinserter_t_del(inserter); dispatch_tree_t_del(tree); return 0; } char m1(uint8_t small_arg, void * state) { printf("m1: %d\n", small_arg); } char m2(uint8_t small_arg, void * state) { printf("m2: %d\n", small_arg); } char m3(uint8_t small_arg, void * state) { printf("m3: %d\n", small_arg); } char m4(uint8_t small_arg, void * state) { printf("m4: %d\n", small_arg); } char m5(uint8_t small_arg, void * state) { printf("m5: %d\n", small_arg); }