1 #include "fwp_participant_table.h"
6 unsigned int nr_participants;
7 /*gavl_cust_root_field_t root;*/
8 gavl_node_t *participant_tree;
10 } fwp_participant_table_t;
12 int fwp_cmp_participant_id(const void *a, const void *b)
14 if (((fwp_participant_id_t*)a)->node_id > ((fwp_participant_id_t*)b)->node_id)
16 if (((fwp_participant_id_t*)a)->node_id < ((fwp_participant_id_t*)b)->node_id)
19 if (((fwp_participant_id_t*)a)->app_id > ((fwp_participant_id_t*)b)->app_id)
21 if (((fwp_participant_id_t*)a)->app_id < ((fwp_participant_id_t*)b)->app_id)
27 GAVL_CUST_NODE_INT_DEC(_fwp_participant_table, fwp_participant_table_t,
28 fwp_participant_t, fwp_participant_id_t,
29 participant_tree, participant_tree_node, id,
30 fwp_cmp_participant_id);
32 GAVL_CUST_NODE_INT_IMP(_fwp_participant_table, fwp_participant_table_t,
33 fwp_participant_t, fwp_participant_id_t,
34 participant_tree, participant_tree_node, id,
35 fwp_cmp_participant_id);
37 fwp_participant_table_t fwp_participant_table = {
39 .participant_tree = NULL,
40 .lock = PTHREAD_MUTEX_INITIALIZER,
43 void fwp_participant_table_insert(fwp_participant_t *participant)
45 pthread_mutex_lock(&fwp_participant_table.lock);
46 _fwp_participant_table_insert(&fwp_participant_table, participant);
47 fwp_participant_table.nr_participants++;
48 pthread_mutex_unlock(&fwp_participant_table.lock);
52 fwp_participant_table_find(fwp_participant_id_t *participant_id)
54 return _fwp_participant_table_find(&fwp_participant_table,
58 int fwp_participant_table_delete(fwp_participant_t *participant)
62 pthread_mutex_lock(&fwp_participant_table.lock);
63 rv = _fwp_participant_table_delete(&fwp_participant_table, participant);
64 fwp_participant_table.nr_participants--;
65 pthread_mutex_unlock(&fwp_participant_table.lock);
70 fwp_participant_t* fwp_participant_table_foreach_begin(void)
72 pthread_mutex_lock(&fwp_participant_table.lock);
73 return _fwp_participant_table_first(&fwp_participant_table);
76 void fwp_participant_table_foreach_end(void)
78 pthread_mutex_unlock(&fwp_participant_table.lock);
81 fwp_participant_t* fwp_participant_table_foreach_next(fwp_participant_t *current)
83 return _fwp_participant_table_next(&fwp_participant_table, current);