]> rtime.felk.cvut.cz Git - frescor/fwp.git/blob - fwp/lib/mngt/fwp_contract_table.h
Compilation fixes
[frescor/fwp.git] / fwp / lib / mngt / fwp_contract_table.h
1 #ifndef _FWP_CONTRACT_TABLE_H
2 #define _FWP_CONTRACT_TABLE_H
3
4 #include "fwp_contract.h"
5 #include "fwp_vres.h"
6
7 #include <string.h>
8
9 #include "ul_list.h"
10 #include "ul_gavlcust.h"
11
12 /**
13  * FWP vres parameters 
14  * It is internal representation of the contract used inside 
15  * protocol.
16  * 
17  */
18
19 /**
20  * List of contract_data structures
21  *
22  */
23 typedef
24 struct fwp_contract_list {
25         ul_list_head_t                  head;
26 } fwp_contract_list_t;
27
28 UL_LIST_CUST_DEC(fwp_contract_list, fwp_contract_list_t, fwp_contract_data_t,
29                 head, list_node);
30
31 /**
32  * Table of contract_data structures
33  *
34  */
35 typedef 
36 struct fwp_contract_table {
37         unsigned int                    nr_contracts;
38         pthread_mutex_t                 lock;
39         /*gavl_cust_root_field_t        contract_tree;*/
40         unsigned int                    id_counter;
41         /*ul_list_head_t                cont_list;*/
42         gavl_node_t                     *contract_tree;
43 } fwp_contract_table_t;
44
45 void fwp_contract_table_init(fwp_contract_table_t *tbl);
46 int fwp_contract_table_insert(fwp_contract_table_t *tbl, 
47                               fwp_contract_data_t *contdata);
48 fwp_contract_data_t* 
49 fwp_contract_table_find(fwp_contract_table_t *tbl, unsigned int id);
50
51 int fwp_contract_table_delete(fwp_contract_table_t *tbl,
52                           fwp_contract_data_t *contdata);
53
54 #endif /* _FWP_CONTRACT_TABLE_H */