Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Keep in sync with last changes in the GRAS callback API
[simgrid.git] / examples / amok / bandwidth / bandwidth.c
index 59033b6..1387b11 100644 (file)
@@ -23,8 +23,7 @@ typedef struct {
   int done;
 } s_sensor_data_t,*sensor_data_t;
 
-static int sensor_cb_quit(gras_socket_t  expeditor,
-                          void          *payload_data) {
+static int sensor_cb_quit(gras_msg_cb_ctx_t ctx, void *payload) {
   sensor_data_t globals=(sensor_data_t)gras_userdata_get();
                           
   globals->done = 1;                  
@@ -35,31 +34,20 @@ static int sensor_cb_quit(gras_socket_t  expeditor,
 int sensor (int argc,char *argv[]);
 
 int sensor (int argc,char *argv[]) {
-  xbt_error_t errcode;
   sensor_data_t g;
 
-  gras_init(&argc, argv, NULL);
+  gras_init(&argc, argv);
   g=gras_userdata_new(s_sensor_data_t);  
-
   amok_bw_init();
    
-  if ((errcode=gras_socket_server(atoi(argv[1]),&(g->sock)))) { 
-    ERROR1("Sensor: Error %s encountered while opening the server socket",xbt_error_name(errcode));
-    return 1;
-  }
+  g->sock=gras_socket_server(atoi(argv[1]));
   g->done = 0;
   
   gras_msgtype_declare("quit",NULL);
   gras_cb_register(gras_msgtype_by_name("quit"),&sensor_cb_quit);
   
-  while (! g->done ) {
-    errcode=gras_msg_handle(60.0);
-    if (errcode != no_error) {
-       ERROR1("Sensor: Error '%s' while handling message",xbt_error_name(errcode));
-       gras_socket_close(g->sock);
-       return errcode;
-    }  
-  }    
+  while (! g->done )
+    gras_msg_handle(60.0);
 
   gras_socket_close(g->sock);
   return 0;
@@ -78,55 +66,47 @@ typedef struct {
 int maestro (int argc,char *argv[]);
 
 int maestro(int argc,char *argv[]) {
-  xbt_error_t errcode;
   maestro_data_t g;
   double sec, bw;
   int buf_size=32;
   int exp_size=1024*50;
-  int msg_size=1024;
+  int msg_size=512;
   gras_socket_t peer;
 
-  gras_init(&argc, argv, NULL);
+  gras_init(&argc, argv);
   g=gras_userdata_new(s_maestro_data_t);
   amok_bw_init();
-   
-  if ((errcode=gras_socket_server(6000,&(g->sock)))) { 
-    ERROR1("Maestro: Error %s encountered while opening the server socket",xbt_error_name(errcode));
-    return 1;
-  }
-      
-   
+
   if (argc != 5) {
      ERROR0("Usage: maestro host port host port\n");
      return 1;
   }
 
   /* wait to ensure that all server sockets are there before starting the experiment */        
-  gras_os_sleep(1.0);
+  gras_os_sleep(0.5);
   
-  if ((errcode=gras_socket_client(argv[1],atoi(argv[2]),&peer))) {
-     ERROR3("Client: Unable to connect to my peer on %s:%s. Got %s",
-           argv[1],argv[2],xbt_error_name(errcode));
-     return 1;
-  }
+  peer = gras_socket_client(argv[1],atoi(argv[2]));
 
   INFO0("Test the BW between me and one of the sensors");  
-  TRY(amok_bw_test(peer,buf_size,exp_size,msg_size,&sec,&bw));
-  INFO6("maestro: Experience between me and %s:%d (%d kb in msgs of %d kb) took %f sec, achieving %f kb/s",
+  amok_bw_test(peer,buf_size,exp_size,msg_size,&sec,&bw);
+  INFO6("Experience between me and %s:%d (%d kb in msgs of %d kb) took %f sec, achieving %f kb/s",
        argv[1],atoi(argv[2]),
        exp_size,msg_size,
        sec,bw);
 
   INFO0("Test the BW between the two sensors");  
-  TRY(amok_bw_request(argv[1],atoi(argv[2]),argv[3],atoi(argv[4]),
-                      buf_size,exp_size,msg_size,&sec,&bw));   
+  amok_bw_request(argv[1],atoi(argv[2]),argv[3],atoi(argv[4]),
+                 buf_size,exp_size,msg_size,&sec,&bw); 
+  INFO2("Experience took took %f sec, achieving %f kb/s",
+       sec,bw);
 
   /* ask sensors to quit */                    
   gras_msgtype_declare("quit",NULL);
-  TRY(gras_msg_send(peer,gras_msgtype_by_name("quit"), NULL));
+  gras_msg_send(peer,gras_msgtype_by_name("quit"), NULL);
   gras_socket_close(peer);
-  TRY(gras_socket_client(argv[3],atoi(argv[4]),&peer));
-  TRY(gras_msg_send(peer,gras_msgtype_by_name("quit"), NULL));
+
+  peer = gras_socket_client(argv[3],atoi(argv[4]));
+  gras_msg_send(peer,gras_msgtype_by_name("quit"), NULL);
   gras_socket_close(peer);
 
   gras_socket_close(g->sock);