]> rtime.felk.cvut.cz Git - frescor/frsh-forb.git/blobdiff - src/fwp/fwp/demo/sender.c
fwp transmit/receive test update
[frescor/frsh-forb.git] / src / fwp / fwp / demo / sender.c
index b8861adc882dc3ad82a55310480f7389fb1f1d3b..f3018f081275eae21198507e64f3a9e72a2543bc 100644 (file)
 #include <netinet/in.h>
 #include <arpa/inet.h>
 
-
+#include <wvtest.h>
 #include "fwp_confdefs.h"
 #include <fres_sa_scenario.h>
 #include <fwp_res.h>
 #include <fwp_vres.h>
 
-char msg[MSGBUFFSIZE];
-
-frsh_resource_id_t resource_id = TEST_RESOURCE_ID;
-frsh_stream_id_t port = TEST_STREAM_ID;
-long int num_msg = TEST_NUM_MSG;
-size_t msg_size = MSGBUFFSIZE;
-
-int exit_flag = 0;
-int dst_ip = 0;
-
 int main(int argc, char* argv[])
 {
+       char msg[MSGBUFFSIZE];
+
+       frsh_resource_id_t resource_id = TEST_RESOURCE_ID;
+       frsh_stream_id_t port = TEST_STREAM_ID;
+       long int num_msg = TEST_NUM_MSG;
+       size_t msg_size = MSGBUFFSIZE;
+       int time_period = 1000;
+       int dst_ip = 0;
+
        bool opt_daemon = false;
        char *opt_pidfile = NULL;
 
        int opt;
-       int ret;
+       frsh_send_endpoint_t sepoint;
+       frsh_vres_id_t vres;
+       frsh_send_endpoint_protocol_info_t send_pinfo;
+       frsh_contract_t contract;
+       frsh_rel_time_t budget, period;
+       int count;
 
        opterr = 0;
-       while ((opt = getopt (argc, argv, "e:d:p:s:m:")) != -1) {
+       while ((opt = getopt (argc, argv, "e:d:p:s:m:t:")) != -1) {
 
                switch (opt) {
                        case 'e':
@@ -57,6 +61,8 @@ int main(int argc, char* argv[])
                        case 's':
                                msg_size = atoi(optarg);
                                break;
+                       case 't':
+                               time_period = atoi(optarg);
                        case '?':
                                printf("Usage: %s -e -d dst_ip_addr -p port"
                                                "-m num_msg -s msg_size\n",
@@ -67,43 +73,32 @@ int main(int argc, char* argv[])
        if (opt_daemon)
                forb_daemon_prepare(opt_pidfile);
 
-       ret = frsh_init();
-       if (ret) PERROR_AND_EXIT(ret, "frsh_init");
-
-       frsh_send_endpoint_t sepoint;
-       frsh_vres_id_t vres;
-       frsh_send_endpoint_protocol_info_t send_pinfo;
-       frsh_contract_t contract;
-       frsh_rel_time_t budget, period;
-       int count;
+       WVFRSH(frsh_init());
 
        send_pinfo.body = NULL;
+       
+       //TODO: What's the return value?        
        if (frsh_send_endpoint_create(resource_id, dst_ip, port,
                                        send_pinfo, &sepoint)< 0) {
                return 1;
        }
 
        /* Contract negotiation */
-       ret = frsh_contract_init(&contract);
-       if (ret) PERROR_AND_EXIT(ret, "frsh_contract_init");
+       WVFRSH(frsh_contract_init(&contract));
 
-       frsh_network_bytes_to_budget(resource_id, msg_size, &budget);
-       period = fosa_msec_to_rel_time(1000);
-       ret = frsh_contract_set_basic_params(&contract,
+       WVFRSH(frsh_network_bytes_to_budget(resource_id, msg_size, &budget));
+       period = fosa_msec_to_rel_time(time_period);
+       WVFRSH(frsh_contract_set_basic_params(&contract,
                                             &budget,
                                             &period,
                                             FRSH_WT_BOUNDED,
-                                            FRSH_CT_REGULAR);
-       if (ret) PERROR_AND_EXIT(ret, "frsh_contract_set_basic_params");
-       ret = frsh_contract_set_resource_and_label(&contract,FRSH_RT_NETWORK,
-                                               resource_id, "net_cont1");
-       if (ret) PERROR_AND_EXIT(ret, "frsh_contract_set_resource_and_label");
-
-       ret = frsh_contract_negotiate(&contract, &vres);
-       if (ret) PERROR_AND_EXIT(ret, "frsh_contract_negotiate");
+                                            FRSH_CT_REGULAR));
+       WVFRSH(frsh_contract_set_resource_and_label(&contract,FRSH_RT_NETWORK,
+                                               resource_id, "net_cont1"));
+       WVFRSH(frsh_contract_negotiate(&contract, &vres));
 
        printf("Send endpoint created\n");
-       frsh_send_endpoint_bind(vres, sepoint);
+       WVFRSH(frsh_send_endpoint_bind(vres, sepoint));
        printf("Send endpoint bounded\n");
 
        count = 0;
@@ -112,7 +107,7 @@ int main(int argc, char* argv[])
                sleep(1);
                count++;
                sprintf(msg,"msg%d",count);
-               frsh_send_async(sepoint, msg, msg_size);
+               WVPASSEQ(frsh_send_async(sepoint, msg, msg_size), msg_size);
                printf("%s sent\n",msg);
        }