Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
documentation improvement
[simgrid.git] / src / gras / Transport / transport_interface.h
index 411f421..281a9c1 100644 (file)
@@ -13,6 +13,8 @@
 #define GRAS_TRP_INTERFACE_H
 
 #include "portable.h" /* sometimes needed for fd_set */
+#include "simix/simix.h"
+#include "xbt/queue.h"
 
 /***
  *** Options
@@ -23,7 +25,8 @@ extern int gras_opt_trp_nomoredata_on_close;
  *** Main user functions
  ***/
 /* stable if we know the storage will keep as is until the next trp_flush */
-XBT_PUBLIC(void) gras_trp_send(gras_socket_t sd, char *data, long int size, int stable);
+XBT_PUBLIC(void) gras_trp_send(gras_socket_t sd, char *data, long int size,
+                              int stable);
 XBT_PUBLIC(void) gras_trp_recv(gras_socket_t sd, char *data, long int size);
 XBT_PUBLIC(void) gras_trp_flush(gras_socket_t sd);
 
@@ -80,8 +83,10 @@ struct gras_trp_plugin_ {
 
   void *data; /* plugin-specific data */
  
-   /* exit is responsible for freeing data and telling the OS this plugin goes */
-   /* exit=NULL, data gets freed. (ie exit function needed only when data contains pointers) */
+   /* exit is responsible for freeing data and telling to the OS that 
+      this plugin is gone */
+   /* exit=NULL, data gets brutally free()d by the generic interface. 
+      (ie exit function needed only when data contains pointers) */
   void (*exit)(gras_trp_plugin_t);
 };
 
@@ -97,14 +102,16 @@ typedef struct {
   char        *name;
   unsigned int name_len;
 
-  xbt_dynar_t sockets; /* all sockets known to this process */
   int myport; /* Port on which I listen myself */
-  fd_set *fdset;
+   
+  xbt_dynar_t sockets; /* all sockets known to this process */
 
   /* SG only elements. In RL, they are part of the OS ;) */
-  int chan;    /* Formated messages channel */
-  int measChan; /* Unformated echange channel for performance measurement*/
    
+  /* List of sockets ready to be select()ed */
+  xbt_queue_t msg_selectable_sockets; /* regular sockets  */
+  xbt_queue_t meas_selectable_sockets;/* measurement ones */
+
 } s_gras_trp_procdata_t,*gras_trp_procdata_t;
 
 /* Display the content of our socket set (debugging purpose) */