]> rtime.felk.cvut.cz Git - frescor/fwp.git/commitdiff
Fix in mngrtest/Makefile.omk -libary order, changed contract ops in libfwp and in...
authorMartin Molnar <molnar@sum.(none)>
Mon, 2 Jun 2008 15:46:15 +0000 (17:46 +0200)
committerMartin Molnar <molnar@sum.(none)>
Mon, 2 Jun 2008 15:46:15 +0000 (17:46 +0200)
fwp/lib/Makefile.omk
fwp/lib/fwp.h
fwp/lib/mngt/fwp_contract.c
fwp/lib/mngt/fwp_contract.h
fwp/lib/mngt/fwp_contract_table.c
fwp/lib/mngt/fwp_contract_table.h
fwp/lib/mngt/fwp_mngt.c
fwp/lib/mngt/fwp_mngt.h
fwp/mngr/fwp_mngr.c
fwp/tests/fwp_mngrtest/Makefile.omk

index 558964b6b99cb3ca17b98d4f5bdcab27c4f091f7..37e5f9e2679153b7ddca72cee0c0ed79dbc4ed7a 100644 (file)
@@ -4,7 +4,8 @@ SUBDIRS = core mngt
 #LDFLAGS = -lpthread  -lrt
 fwp_SOURCES = core/fwp_util.c core/fwp_vres.c core/fwp_msgb.c core/fwp_msgq.c\
              core/fwp_endpoint.c
-fwp_SOURCES += mngt/fwp_msg.c mngt/fwp_mngt.c mngt/fwp_contract_table.c
+fwp_SOURCES += mngt/fwp_msg.c mngt/fwp_contract_table.c mngt/fwp_mngt.c\
+               mngt/fwp_mngt.c
 
 include_HEADERS= fwp.h
 
index eb2b862b545c6f54832e4ac8487c9248a6a8f8d2..f2097c714f21f4a6c9783de398a043f9642905ef 100644 (file)
@@ -2,6 +2,7 @@
 #define _FWP_H
 
 #include "fwp_conf.h"
+#include "fwp_vres.h"
 #include "fwp_endpoint.h"
 #include "fwp_mngt.h"
 
index 82c33781a08b099baa853c905d7c7a7b23d78f36..cf7f8d8d7cefdec2eec9c7ac6358c95832cee2d0 100644 (file)
@@ -1,7 +1,6 @@
-#include "fwp_util.h"
-#include "fwp_contract.h"
 #include "fwp_msg.h"
-#include "fwp_comm.h"
+#include "fwp_contract.h"
+#include "fwp_contract_table.h"
 
 
 /**
@@ -17,6 +16,7 @@
  *
  * If an error occured it returns negative error code.
  */
+#if 0
 int fwp_contract_negotiate(struct fwp_contract *contract, fwp_vres_d_t *vresdp)
 {
        fwp_vres_params_t vparams;
@@ -74,6 +74,58 @@ int fwp_contract_negotiate(struct fwp_contract *contract, fwp_vres_d_t *vresdp)
                return FWP_CONTNEGT_REJECTED;
        }
 }
+#endif
+
+fwp_contract_d_t fwp_contract_create(fwp_contract_t *contract)
+{
+       fwp_msgb_t *msgb;
+       fwp_contract_data_t *contdata;
+
+       contdata = fwp_contract_data_new();
+       contdata->vresd = fwp_vres_alloc();
+       contdata->id = fwp_vres_get_id(contdata->vresd);
+       memcpy(&contdata->contract, contract, sizeof(*contract));
+       contdata->status = FWP_CONT_REQUESTED; 
+       
+       /* Add to contract table */
+       fwp_contract_table_insert(&fwp_participant_this->contract_table, 
+                                       contdata);
+       return 0;
+}
+
+int fwp_contract_reserve(fwp_contract_d_t contractd)
+{
+       fwp_contract_id_t  contract_id = contractd;
+       fwp_contract_data_t *contdata;
+       fwp_msgb_t *msgb;
+       
+       contdata = fwp_contract_table_find(&fwp_participant_this->contract_table,
+                                               contract_id);
+       /* Send contract to manager */
+       msgb = fwp_msgb_alloc(sizeof(struct fwp_msg_header) +
+                               sizeof(struct fwp_msg_contract));
+       fwp_msg_contract_deflate(msgb->data, contdata->id, &contdata->contract);
+       fwp_mngt_send(FWP_MSG_NEGT_RESERVE, msgb, 
+                       fwp_participant_this, fwp_participant_mngr);
+       return 0;
+}
+
+int fwp_contract_commit(fwp_contract_d_t contractd)
+{
+       fwp_contract_id_t  contract_id = contractd;
+       fwp_contract_data_t *contdata;
+       fwp_msgb_t *msgb;
+       
+       contdata = fwp_contract_table_find(&fwp_participant_this->contract_table,
+                                               contract_id);
+       /* Send contract to manager */
+       msgb = fwp_msgb_alloc(sizeof(struct fwp_msg_header) +
+                               sizeof(struct fwp_msg_contract));
+       fwp_msg_contract_deflate(msgb->data, contdata->id, &contdata->contract);
+       fwp_mngt_send(FWP_MSG_NEGT_COMMIT, msgb, 
+                       fwp_participant_this, fwp_participant_mngr);
+       return 0;
+}
 
 #if 0
 /**
index 82287d489d39dc4f3c9319395224412ddc7ff34d..48a600086c7febeff445e2bc20f73f244844f22c 100644 (file)
@@ -20,6 +20,7 @@ typedef enum {
 } fwp_contract_status_t;
 
 typedef fwp_vres_id_t fwp_contract_id_t;
+typedef fwp_contract_id_t fwp_contract_d_t;
 
 /**
  * FWP contract.
index fa491d25666e012b28fd677bd563965738876bea..cc6aae8cc45e6001770a544878dfbfbedde482d5 100644 (file)
@@ -2,11 +2,11 @@
 #include "ul_gavl.h"
 
 GAVL_CUST_NODE_INT_DEC(_fwp_contract_table, fwp_contract_table_t, 
-                       fwp_contract_data_t, unsigned int, contract_tree, 
+                       fwp_contract_data_t, fwp_contract_id_t, contract_tree, 
                        tree_node, id, gavl_cmp_int);
 
 GAVL_CUST_NODE_INT_IMP(_fwp_contract_table, fwp_contract_table_t, 
-                       fwp_contract_data_t, unsigned int, contract_tree, 
+                       fwp_contract_data_t, fwp_contract_id_t, contract_tree, 
                        tree_node, id, gavl_cmp_int);
 
 fwp_contract_data_t* fwp_contract_data_new()
index 7b58d5552bff735a77a90523ae6091d699cbf6d7..bb5de46ad3dc372a392184e7a4a88db92aea596e 100644 (file)
@@ -60,6 +60,7 @@ struct fwp_contract_table {
        gavl_node_t                     *contract_tree;
 } fwp_contract_table_t;
 
+fwp_contract_data_t* fwp_contract_data_new(void);
 
 void fwp_contract_table_init(fwp_contract_table_t *tbl);
 int fwp_contract_table_insert(fwp_contract_table_t *tbl, 
index ba655699ff773de4e3ffb4e60257657d74293499..5993c6fe2b7ec0f1b1b079dbca9a78e7637c244e 100644 (file)
@@ -1,5 +1,4 @@
 #include "fwp_mngt.h"
-#include "fwp_participant.h"
 
 /* 
  * Global mngt variables
@@ -10,7 +9,6 @@ fwp_participant_t      *fwp_participant_mngr;
 
 /*fwp_endpoint_d_t     fwp_mngt_repointd;*/
 
-/* temporarily*/
 /**
  * struct resource {
  *     char name[10];
@@ -50,49 +48,6 @@ int fwp_mngt_recv(fwp_msg_type_t *type, fwp_participant_id_t *participant_id,
        return 0;
 } 
 
-int fwp_negt_request(fwp_contract_t *contract)
-{
-       fwp_msgb_t *msgb;
-       fwp_contract_data_t *contdata;
-
-       contdata = fwp_contract_data_new();
-       contdata->vresd = fwp_vres_alloc();
-       contdata->id = fwp_vres_get_id(contdata->vresd);
-       memcpy(&contdata->contract, contract, sizeof(*contract));
-       contdata->status = FWP_CONT_REQUESTED; 
-       
-       /* Add to contract table */
-       fwp_contract_table_insert(&fwp_participant_this->contract_table, 
-                                       contdata);
-       /* Send contract to manager */
-       msgb = fwp_msgb_alloc(sizeof(struct fwp_msg_header) +
-                               sizeof(struct fwp_msg_contract));
-       fwp_msg_contract_deflate(msgb->data, contdata->id, &contdata->contract);
-       fwp_mngt_send(FWP_MSG_NEGT_REQ, msgb, 
-                       fwp_participant_this, fwp_participant_mngr);
-       return 0;
-}
-
-int fwp_negt_reserve()
-{
-       fwp_msgb_t *msgb;
-       
-       msgb = fwp_msgb_alloc(sizeof(struct fwp_msg_header));
-       fwp_mngt_send(FWP_MSG_NEGT_RESERVE, msgb, 
-                       fwp_participant_this, fwp_participant_mngr);
-       return 0;
-}
-
-int fwp_negt_commit()
-{
-       fwp_msgb_t *msgb;
-       
-       msgb = fwp_msgb_alloc(sizeof(struct fwp_msg_header));
-       fwp_mngt_send(FWP_MSG_NEGT_COMMIT, msgb, 
-                       fwp_participant_this, fwp_participant_mngr);
-       return 0;
-}
-
 int fwp_mngt_service_vres_create(fwp_vres_d_t* fwp_service_vresd)
 {
        struct fwp_vres_params  fwp_service_vparams;
index 8624101c90f4786665bd899af9dae3b6663c7fa1..d951b41cecc9b341cf9a8535f75029b7b1948481 100644 (file)
@@ -5,7 +5,10 @@
 #include "fwp_msg.h"
 
 #include "fwp_util.h"
+#include "fwp_vres.h"
 #include "fwp_endpoint.h"
+#include "fwp_participant.h"
+#include "fwp_contract_table.h"
 
 #define FWP_MNGR_STREAM_ID     3000
 #define FWP_MNGT_DISCOVERY_STREAM_ID   3000
index c4e1ed820f999e185d058f75dfefe793169e50b2..d06b91c4dcbca8263b1543bfca1e3d8100604415 100644 (file)
@@ -84,11 +84,46 @@ void fwp_mngr_hello(fwp_msgb_t *msgb, fwp_participant_id_t participant_id)
        FWP_DEBUG("Sent HELLO msg \n");
 }
 
-/*void fwp_mngr_negt_request(msgb, participant_id)
+int fwp_mngr_contract_reserve(fwp_msgb_t *msgb, fwp_participant_id_t participant_id)
 {
+       fwp_participant_t *participant;
+       fwp_contract_data_t *contdata;
+
+       /* Find participant */
+       if (!(participant = fwp_participant_table_find(&participant_id))){
+               return -EPERM;
+       }
+
+       contdata = fwp_contract_data_new();
+       fwp_msg_contract_inflate(msgb->data, &contdata->id, &contdata->contract);
+       contdata->status = FWP_CONT_REQUESTED; 
        
+       /* Add contract to contract table */
+       fwp_contract_table_insert(&participant->contract_table, contdata);
+       /*launch admission test */
+
+       return 0;
+}
+
+int fwp_mngr_contract_commit(fwp_msgb_t *msgb, fwp_participant_id_t participant_id)
+{
+       fwp_participant_t *participant;
+       fwp_contract_data_t *contdata;
+       fwp_contract_t  contract;
+       fwp_contract_id_t  id;
+
+       /* Find participant */
+       if (!(participant = fwp_participant_table_find(&participant_id))){
+               return -EPERM;
+       }
 
-}*/
+       fwp_msg_contract_inflate(msgb->data, &id, &contract);
+       contdata = fwp_contract_table_find(&participant->contract_table, id);
+       contdata->status = FWP_CONT_ACCEPTED; 
+       
+       /* Add to contract accept list */
+       return 0;       
+}
 
 void fwp_mngr_msg_handler(fwp_msgb_t *msgb)
 {
@@ -104,12 +139,11 @@ void fwp_mngr_msg_handler(fwp_msgb_t *msgb)
                case  FWP_MSG_HELLO:
                        fwp_mngr_hello(msgb, participant_id);
                        break;
-#if 0
-               case  FWP_MSG_NEGREQ: 
+
+               case  FWP_MSG_NEGT_REQ: 
                        FWP_DEBUG("Negotiation Request received\n");
-                       fwp_mngr_negt_request(msgb, participant_id);
+                       fwp_mngr_contract_reserve(msgb, participant_id);
                        break;  
-#endif
                default:
                        printf("Invalid message\n.");
                        fwp_msgb_free(msgb);
index 39ef4a81ebca7e07ca172789ce1c330c41c0eb6f..3825768e3ba61e1973fbc6ebb34c39453d19efc4 100644 (file)
@@ -2,4 +2,4 @@ CFLAGS = -g
 
 test_PROGRAMS = fwp_mngrtest
 fwp_mngrtest_SOURCES+= fwp_mngrtest.c
-lib_LOADLIBES += fwp pthread rt
+lib_LOADLIBES += fwp pthread rt ulut