]> rtime.felk.cvut.cz Git - frescor/fwp.git/blob - fwp/lib/mngt/fwp_participant.h
8b175881fee04372c6e33ae24d1f97980cec8b15
[frescor/fwp.git] / fwp / lib / mngt / fwp_participant.h
1 #ifndef _FWP_PARTICIPANT_H
2 #define _FWP_PARTICIPANT_H
3
4 #include "fwp_contract_table.h"
5 #include "fwp_endpoint.h"
6 #include "ul_gavlcust.h"
7
8 typedef 
9 struct fwp_participant_id {
10         /*unsigned int  address_family */
11         unsigned int    node_id;
12         unsigned int    app_id;
13 } fwp_participant_id_t;
14
15 typedef 
16 /*struct fwp_participant_conf {*/
17 struct fwp_participant_info {
18         fwp_participant_id_t    id;
19         unsigned int            stream_id;
20 } fwp_participant_info_t;
21
22 /**
23  * Participant of FWP
24  *
25  */
26 typedef
27 struct fwp_participant {
28         fwp_participant_id_t    id;
29         unsigned int            stream_id;
30         fwp_endpoint_d_t        epointd; /**< endpoint descriptor for communication*/
31         fwp_vres_d_t            vresd;  /**<  service vres descriptor */
32         gavl_node_t             participant_tree_node;
33         fwp_contract_table_t    contract_table; /**< participant`s contract table */
34         /*fwp_resource_list     resource_list; or
35          *void                  *resources; or 
36          *void                  *data_priv; */
37 } fwp_participant_t;
38
39 static inline fwp_participant_t*  
40 fwp_participant_new(fwp_participant_info_t *participant_info)
41 {
42         fwp_participant_t *participant;
43
44         participant = (fwp_participant_t*) malloc(sizeof(fwp_participant_t));
45         if (!participant)
46                 return NULL;
47
48         participant->id = participant_info->id;
49         participant->stream_id = participant_info->stream_id;
50
51         fwp_contract_table_init(&participant->contract_table);  
52         return participant;
53 }
54
55 static inline void fwp_participant_delete(fwp_participant_t *participant)
56 {
57         free(participant);
58 }
59
60 #endif /*_FWP_PARTICIPANT_H */