Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
- Do not close sockets closed on other side: user may keep references to them.
[simgrid.git] / src / gras / Transport / transport_interface.h
index 5766ffd..abbc09f 100644 (file)
@@ -12,6 +12,8 @@
 #ifndef GRAS_TRP_INTERFACE_H
 #define GRAS_TRP_INTERFACE_H
 
+#include "portable.h" /* sometimes needed for fd_set */
+
 /***
  *** Main user functions
  ***/
@@ -23,6 +25,8 @@ void gras_trp_flush(gras_socket_t sd);
 /* Find which socket needs to be read next */
 gras_socket_t gras_trp_select(double timeout);
 
+/* Set the peer process name (used by messaging layer) */
+void gras_socket_peer_proc_set(gras_socket_t sock,char*peer_proc);
 
 /***
  *** Plugin mechanism 
@@ -83,11 +87,22 @@ gras_trp_plugin_get_by_name(const char *name);
  * (used by sg_process.c to cleanup the SG channel cruft)
  */
 typedef struct {
-   /* SG only elements. In RL, they are part of the OS ;) */
-   int chan;    /* Formated messages channel */
-   int measChan; /* Unformated echange channel for performance measurement*/
-   xbt_dynar_t sockets; /* all sockets known to this process */
+  /* set headers */
+  unsigned int ID;
+  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;
+
+  /* SG only elements. In RL, they are part of the OS ;) */
+  int chan;    /* Formated messages channel */
+  int measChan; /* Unformated echange channel for performance measurement*/
    
 } s_gras_trp_procdata_t,*gras_trp_procdata_t;
 
+/* Display the content of our socket set (debugging purpose) */
+void gras_trp_socketset_dump(const char *name);
+
 #endif /* GRAS_TRP_INTERFACE_H */