X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/31d626536ff0cdfa875075e092bf8c86a5e43710..c6c517af9e561a831a14051c92abcb217b1fe2bb:/src/gras/Transport/transport_interface.h?ds=sidebyside diff --git a/src/gras/Transport/transport_interface.h b/src/gras/Transport/transport_interface.h index a8f84bfdf3..d23f05e14a 100644 --- a/src/gras/Transport/transport_interface.h +++ b/src/gras/Transport/transport_interface.h @@ -13,42 +13,51 @@ #ifndef GRAS_TRP_INTERFACE_H #define GRAS_TRP_INTERFACE_H -#include "gras_private.h" - -/** - * e_gras_trp_plugin: - * - * Caracterize each possible transport plugin - */ -typedef enum e_gras_trp_plugin { - e_gras_trp_plugin_undefined = 0, - - e_gras_trp_plugin_tcp -} gras_trp_plugin_type_t; - +/*** + *** Main user functions + ***/ +gras_error_t gras_trp_chunk_send(gras_socket_t *sd, + char *data, + size_t size); +gras_error_t gras_trp_chunk_recv(gras_socket_t *sd, + char *data, + size_t size); /* Find which socket needs to be read next */ gras_error_t gras_trp_select(double timeout, gras_socket_t **dst); -/* -gras_error_t gras_trp_NNN_init(gras_trp_plugin_t **dst); -*/ + +/*** + *** Module declaration + ***/ +gras_error_t gras_trp_init(void); +void gras_trp_exit(void); + +/*** + *** Plugin mecanism + ***/ + +/* A plugin type */ +typedef struct gras_trp_plugin_ gras_trp_plugin_t; /* A plugin type */ struct gras_trp_plugin_ { char *name; + /* dst pointers are created and initialized with default values + before call to socket_client/server*/ gras_error_t (*socket_client)(gras_trp_plugin_t *self, const char *host, unsigned short port, - unsigned int bufSize, - /* OUT */ gras_socket_t **dst); + int raw, + /* OUT */ gras_socket_t *dst); gras_error_t (*socket_server)(gras_trp_plugin_t *self, unsigned short port, - unsigned int bufSize, - /* OUT */ gras_socket_t **dst); + int raw, + /* OUT */ gras_socket_t *dst); + gras_error_t (*socket_accept)(gras_socket_t *sock, /* OUT */gras_socket_t **dst); @@ -56,15 +65,14 @@ struct gras_trp_plugin_ { /* socket_close() is responsible of telling the OS that the socket is over, but should not free the socket itself (beside the specific part) */ void (*socket_close)(gras_socket_t *sd); - - - gras_error_t (*bloc_send)(gras_socket_t *sd, - char *data, - size_t size); - gras_error_t (*bloc_recv)(gras_socket_t *sd, - char *Data, - size_t size); - + + gras_error_t (*chunk_send)(gras_socket_t *sd, + char *data, + size_t size); + gras_error_t (*chunk_recv)(gras_socket_t *sd, + char *Data, + size_t size); + void *specific; void (*free_specific)(void *); };