Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Change the prototype of xbt_thread_create(), sorry.
[simgrid.git] / examples / gras / p2p / can / can.c
index 270c3ee..7f5f0b5 100644 (file)
@@ -2,7 +2,7 @@
 // Peer-To-Peer CAN simulator 050406 by Dytto ESIAL //
 //////////////////////////////////////////////////////
 
-
+#include <stdio.h>
 #include "xbt/sysdep.h"
 #include "gras.h"
 
@@ -66,7 +66,7 @@ static void forward_get_suc(get_suc_t msg, char host[1024], int port){
                RETHROW0("Unable to connect!: %s");
        }
        TRY{
-               gras_msg_send(temp_sock,gras_msgtype_by_name("can_get_suc"),&msg);
+               gras_msg_send(temp_sock,"can_get_suc",&msg);
        }CATCH(e){
                RETHROW0("Unable to send!: %s");
        }
@@ -80,7 +80,7 @@ static int node_get_suc_handler(gras_msg_cb_ctx_t ctx,void *payload_data){
        get_suc_t *incoming=(get_suc_t*)payload_data;
        xbt_ex_t e; // the error variable used in TRY.. CATCH tokens.
        node_data_t *globals=(node_data_t*)gras_userdata_get();
-
+       gras_socket_t temp_sock=NULL;
        INFO3("Received a get_successor message from %s for (%d;%d)",gras_socket_peer_name(expeditor),incoming->xId,incoming->yId);
        //INFO4("My area is [%d;%d;%d;%d]",globals->x1,globals->x2,globals->y1,globals->y2);
        if(incoming->xId<globals->x1) // test if the message must be forwarded to a neighbour.
@@ -178,14 +178,14 @@ static int node_get_suc_handler(gras_msg_cb_ctx_t ctx,void *payload_data){
                }
                if(validate==1){ // the area for the new node has been defined, then send theses informations to the new node.
                        INFO2("Sending environment informations to node %s:%d",incoming->host,incoming->port);
-                       gras_socket_t temp_sock=NULL;   
+
                        TRY{
                                temp_sock=gras_socket_client(incoming->host,incoming->port);
                        }CATCH(e){
                                RETHROW0("Unable to connect to the node wich has requested for an area!: %s");
                        }
                        TRY{
-                               gras_msg_send(temp_sock,gras_msgtype_by_name("can_rep_suc"),&outgoing);
+                               gras_msg_send(temp_sock,"can_rep_suc",&outgoing);
                                INFO0("Environment informations sent!");
                        }CATCH(e){
                                RETHROW2("%s:Timeout sending environment informations to %s: %s",globals->host,gras_socket_peer_name(expeditor));
@@ -203,7 +203,7 @@ static int node_get_suc_handler(gras_msg_cb_ctx_t ctx,void *payload_data){
        INFO4("My area is [%d;%d;%d;%d]",globals->x1,globals->x2,globals->y1,globals->y2);
          //INFO0("Closing node, all has been done!");
        }
-   return 1;
+   return 0;
 }
 
 
@@ -213,6 +213,12 @@ static int node_get_suc_handler(gras_msg_cb_ctx_t ctx,void *payload_data){
 int node(int argc,char **argv){
        node_data_t *globals=NULL;
        xbt_ex_t e; // the error variable used in TRY.. CATCH tokens.
+       gras_socket_t temp_sock=NULL;
+
+       rep_suc_t rep_suc_msg;
+
+       get_suc_t get_suc_msg; // building the "get_suc" message.
+       gras_socket_t temp_sock2=NULL;
 
        INFO0("Starting");
 
@@ -238,31 +244,31 @@ int node(int argc,char **argv){
                globals->y2=1000;
        }else{ // asking for an area.
                INFO1("Contacting %s so as to request for an area",argv[4]);
-               gras_socket_t temp_sock=NULL;
+
                TRY{
                        temp_sock=gras_socket_client(argv[4],atoi(argv[5]));
                }CATCH(e){
                        RETHROW0("Unable to connect known host to request for an area!: %s");
                }
 
-               get_suc_t get_suc_msg; // building the "get_suc" message.
+
                get_suc_msg.xId=globals->xId;
                get_suc_msg.yId=globals->yId;
                strcpy(get_suc_msg.host,globals->host);
                get_suc_msg.port=globals->port;
                TRY{ // asking.
-                       gras_msg_send(temp_sock,gras_msgtype_by_name("can_get_suc"),&get_suc_msg);
+                       gras_msg_send(temp_sock,"can_get_suc",&get_suc_msg);
                }CATCH(e){
                        gras_socket_close(temp_sock);
                        RETHROW0("Unable to contact known host to get an area!: %s");
                }
                gras_socket_close(temp_sock);
 
-               rep_suc_t rep_suc_msg;
-               gras_socket_t temp_sock2=NULL;
+
+
                TRY{ // waiting for a reply.
                        INFO0("Waiting for reply!");
-                       gras_msg_wait(6000,gras_msgtype_by_name("can_rep_suc"),&temp_sock2,&rep_suc_msg);
+                       gras_msg_wait(6000,"can_rep_suc",&temp_sock2,&rep_suc_msg);
                }CATCH(e){
                        RETHROW1("%s: Error waiting for an area:%s",globals->host);
                }