Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Don't read a comm after completion since it is auto-destroyed now.
[simgrid.git] / src / gras / Virtu / virtu_sg.h
index f62517c..b634604 100644 (file)
 
 typedef struct {
   int port;                     /* list of ports used by a server socket */
-  int meas;                     /* (boolean) the channel is for measurements or for messages */
-  smx_process_t process; /* process listening */
-  smx_rdv_t rdv; /* rendez-vous point to the listener */
-//  gras_socket_t socket; FIXME KILLME
-} gras_sg_portrec_t;
+  int meas:1;                   /* (boolean) the channel is for measurements or for messages */
+  smx_process_t server;
+  smx_rdv_t rdv;
+} s_gras_sg_portrec_t, *gras_sg_portrec_t;
 
 /* Data for each host */
 typedef struct {
@@ -32,16 +31,21 @@ typedef struct {
 
 /* data for each socket (FIXME: find a better location for that)*/
 typedef struct {
-  smx_process_t from_process;
-  smx_process_t to_process;
+  smx_process_t server;
+  smx_process_t client;
 
-  smx_host_t to_host;           /* Who's on other side */
+  smx_rdv_t rdv_server;         /* The rendez-vous point to use */
+  smx_rdv_t rdv_client;         /* The rendez-vous point to use */
+  smx_action_t comm_recv;       /* The comm of irecv on receiver side */
+  gras_msg_t msg;               /* The destination buffer of the comm data */
 
-  smx_rdv_t rdv_server; /* The rendez-vous point to use */
-  smx_rdv_t rdv_client; /* The rendez-vous point to use */
-  int im_server:1;
-  smx_comm_t comm_recv; /* The comm of irecv on receiving sockets */
-} gras_trp_sg_sock_data_t;
+  int server_port;
+  int client_port;
+} s_gras_trp_sg_sock_data_t, *gras_trp_sg_sock_data_t;
+
+
+/** \brief Returns if I am on the server side of this socket (either server or listener of server) */
+int gras_socket_im_the_server(gras_socket_t sock);
 
 
 void *gras_libdata_by_name_from_remote(const char *name, smx_process_t p);
@@ -52,4 +56,4 @@ void *gras_libdata_by_name_from_remote(const char *name, smx_process_t p);
  * order.
  */
 
-#endif /* VIRTU_SG_H */
+#endif                          /* VIRTU_SG_H */