]> rtime.felk.cvut.cz Git - frescor/fwp.git/commitdiff
Added global agent_table variable and hence changed parameters of fwp_agent_atble...
authorMartin Molnar <molnar@sum.(none)>
Thu, 20 Mar 2008 18:01:43 +0000 (19:01 +0100)
committerMartin Molnar <molnar@sum.(none)>
Thu, 20 Mar 2008 18:01:43 +0000 (19:01 +0100)
fwp/mngt/fwp_agent_table.c
fwp/mngt/fwp_agent_table.h
fwp/mngt/fwp_mngr.c

index 12aac47533500b70da239e373fe267543884d571..6ef7fc98c10a01c06043c65861ecace86326626c 100644 (file)
@@ -1,7 +1,14 @@
 #include "fwp_agent_table.h"
-
 #include <stdlib.h>
 
+typedef
+struct {
+       unsigned int                    nr_agents;
+       /*pthread_mutex_t               lock; */
+       /*gavl_cust_root_field_t        root;*/
+       gavl_node_t                     *agent_tree;
+} fwp_agent_table_t;
+
 GAVL_CUST_NODE_INT_DEC(_fwp_agent_table, fwp_agent_table_t, fwp_agent_data_t,
                        unsigned int, agent_tree, tree_node, _addr, 
                        gavl_cmp_int);
@@ -10,19 +17,23 @@ GAVL_CUST_NODE_INT_IMP(_fwp_agent_table, fwp_agent_table_t, fwp_agent_data_t,
                        unsigned int, agent_tree, tree_node, _addr, 
                        gavl_cmp_int);
 
-void fwp_agent_table_init(struct fwp_agent_table *tbl)
+fwp_agent_table_t  fwp_agent_table = {
+               .nr_agents = 0,
+               .agent_tree = NULL,
+};
+
+/*void fwp_agent_table_init()
 {
-       _fwp_agent_table_init_root_field(tbl);
-       tbl->nr_agents = 0;
-}
+       _fwp_agent_table_init_root_field(&fwp_agent_table);
+       fwp_agent_table.nr_agents = 0;
+}*/
 
-void fwp_agent_table_insert(fwp_agent_table_t *tbl, 
-                               fwp_sockaddr_t *agent_sockaddr)
+void fwp_agent_table_insert(fwp_sockaddr_t *agent_sockaddr)
 {
        struct sockaddr_in *addr_in;
        fwp_agent_data_t *agdata;
 
-       agdata = fwp_agent_table_find(tbl, agent_sockaddr);
+       agdata = fwp_agent_table_find(agent_sockaddr);
        if (!agdata) {
                /* Alloc new agent data */
                agdata = (fwp_agent_data_t*)malloc(sizeof(fwp_agent_data_t));
@@ -30,16 +41,15 @@ void fwp_agent_table_insert(fwp_agent_table_t *tbl,
                agdata->_addr = addr_in->sin_addr.s_addr; 
                memcpy(&agdata->addr, agent_sockaddr, sizeof(fwp_sockaddr_t));
                fwp_contract_table_init(&agdata->contract_table);
-               _fwp_agent_table_insert(tbl, agdata);
+               //_fwp_agent_table_insert(tbl, agdata);
        }
        /* obtain fwp ctable mutex */
-       _fwp_agent_table_insert(tbl, agdata);
-       tbl->nr_agents++;
+       _fwp_agent_table_insert(&fwp_agent_table, agdata);
+       fwp_agent_table.nr_agents++;
        /* release fwp_contract_table mutex */  
 }
 
-fwp_agent_data_t* fwp_agent_table_find(fwp_agent_table_t *tbl, 
-                                       fwp_sockaddr_t *agent_sockaddr)
+fwp_agent_data_t* fwp_agent_table_find(fwp_sockaddr_t *agent_sockaddr)
 {
        unsigned int addr;
        struct sockaddr_in *addr_in;
@@ -47,16 +57,15 @@ fwp_agent_data_t* fwp_agent_table_find(fwp_agent_table_t *tbl,
        addr_in = (struct sockaddr_in*) agent_sockaddr->addr;
        addr = addr_in->sin_addr.s_addr; 
        
-       return _fwp_agent_table_find(tbl, &addr);
+       return _fwp_agent_table_find(&fwp_agent_table, &addr);
 }
 
-int fwp_agent_table_delete(fwp_agent_table_t *tbl, 
-                               fwp_agent_data_t *agdata)
+int fwp_agent_table_delete(fwp_agent_data_t *agdata)
 {
        int rv;
 
-       rv = _fwp_agent_table_delete(tbl, agdata); 
-       tbl->nr_agents--;
+       rv = _fwp_agent_table_delete(&fwp_agent_table, agdata); 
+       fwp_agent_table.nr_agents--;
        
        return rv;
 }
index e008723fa42ca0ed6f519639ada7443af9e733fc..bfbca319d6ef79b19c6518624b3050381ef1d2b2 100644 (file)
@@ -15,20 +15,8 @@ struct fwp_agent_data {
        gavl_node_t             tree_node;
 } fwp_agent_data_t;
 
-typedef
-struct fwp_agent_table {
-       unsigned int                    nr_agents;
-       /*pthread_mutex_t               lock; */
-       /*gavl_cust_root_field_t        root;*/
-       gavl_node_t                     *agent_tree;
-} fwp_agent_table_t;
-
-void fwp_agent_table_init(fwp_agent_table_t *tbl);
-void fwp_agent_table_insert(fwp_agent_table_t *tbl, 
-                               fwp_sockaddr_t *agent_sockaddr);
-fwp_agent_data_t* fwp_agent_table_find(fwp_agent_table_t *tbl, 
-                                       fwp_sockaddr_t *agent_sockaddr);
-int fwp_agent_table_delete(fwp_agent_table_t *tbl,
-                               fwp_agent_data_t *contdata);
+void fwp_agent_table_insert(fwp_sockaddr_t *agent_sockaddr);
+fwp_agent_data_t* fwp_agent_table_find(fwp_sockaddr_t *agent_sockaddr);
+int fwp_agent_table_delete(fwp_agent_data_t *contdata);
 
 #endif /*_FWP_AGENT_TABLE_H */
index 32b995dda69c23c304f85f34b8f5e4c4eb513f5a..4693d61768f732f9b7ce1c82410f06c886f4253b 100644 (file)
@@ -18,9 +18,6 @@ struct fwp_sockaddr   peer;
 struct fwp_vres_params service_vparams;                
 fwp_vres_d_t           service_vresd;  /**< service vres decriptor */
 
-/* Agent table */
-fwp_agent_table_t      agent_table;            /**< agent table*/
-
 /* List of requested contracts */
 /*fwp_contractlist_t   contractlist_req;*/
 /* for simplicity only one contract is to be negotiated now*/
@@ -190,7 +187,7 @@ int fwp_mngr_contract_negt_request(fwp_msgb_t *msgb, fwp_appcall_id_t *appcall_i
        /* copy contract to contract_data */
        memcpy(&contdata->contract, &contract, sizeof(contdata->contract));
        /* set pointer to agent data */
-       contdata->agent = fwp_agent_table_find(&agent_table, msgb->peer);
+       contdata->agent = fwp_agent_table_find(msgb->peer);
        /* set appid and hid */
        contdata->contract_call_id = *appcall_id;
        contdata->status = FWP_CONT_REQUESTED;
@@ -214,7 +211,7 @@ static void fwp_mngr_msg_handler(struct fwp_msgb *msgb)
        FWP_DEBUG("code = %d , appid = %d callid = %d\n", code, 
                        appcall_id.appid, appcall_id.callid);
        
-       fwp_agent_table_insert(&agent_table, msgb->peer);
+       fwp_agent_table_insert(msgb->peer);
 
        switch (code) {
                case  FWP_CONTNEGT_REQ: