X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/331727ab14bbe61b3ab2e04c21df828249cd0775..5a75c2ad2b79132f8bef85bb8dd8643706e7ed8d:/src/gras/Transport/transport_interface.h diff --git a/src/gras/Transport/transport_interface.h b/src/gras/Transport/transport_interface.h index 6bb5c03ac3..f4395e795c 100644 --- a/src/gras/Transport/transport_interface.h +++ b/src/gras/Transport/transport_interface.h @@ -13,17 +13,15 @@ #ifndef GRAS_TRP_INTERFACE_H #define GRAS_TRP_INTERFACE_H -#include "gras_private.h" - /*** *** Main user functions ***/ -gras_error_t gras_trp_bloc_send(gras_socket_t *sd, - void *data, - size_t size); -gras_error_t gras_trp_bloc_recv(gras_socket_t *sd, - void *data, - size_t size); +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 @@ -44,31 +42,20 @@ void gras_trp_exit(void); /* A plugin type */ typedef struct gras_trp_plugin_ gras_trp_plugin_t; - -/** - * 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; - /* 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); + /* 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); + /* OUT */ gras_socket_t *dst); + gras_error_t (*socket_accept)(gras_socket_t *sock, /* OUT */gras_socket_t **dst); @@ -76,17 +63,19 @@ 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 (*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 *data; - - 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); - - void *specific; - void (*free_specific)(void *); + /* exit is responsible for freeing data and telling the OS this plugin goes */ + /* if it's NULL, data gets freed. (ie exit needed only when data contains pointers) */ + void (*exit)(gras_trp_plugin_t *); }; gras_error_t