***/
gras_error_t gras_trp_chunk_send(gras_socket_t *sd,
char *data,
- size_t size);
+ long int size);
gras_error_t gras_trp_chunk_recv(gras_socket_t *sd,
char *data,
- size_t size);
+ long int size);
+gras_error_t gras_trp_flush(gras_socket_t *sd);
/* Find which socket needs to be read next */
gras_error_t
gras_socket_t **dst);
-/***
- *** Module declaration
- ***/
-gras_error_t gras_trp_init(void);
-void gras_trp_exit(void);
-
/***
*** Plugin mecanism
***/
gras_error_t (*socket_client)(gras_trp_plugin_t *self,
const char *host,
unsigned short port,
- int raw,
/* OUT */ gras_socket_t *dst);
gras_error_t (*socket_server)(gras_trp_plugin_t *self,
unsigned short port,
- int raw,
/* OUT */ gras_socket_t *dst);
gras_error_t (*socket_accept)(gras_socket_t *sock,
void (*socket_close)(gras_socket_t *sd);
gras_error_t (*chunk_send)(gras_socket_t *sd,
- char *data,
- size_t size);
+ const char *data,
+ long int size);
gras_error_t (*chunk_recv)(gras_socket_t *sd,
char *Data,
- size_t size);
+ long int size);
- void *specific;
- void (*free_specific)(void *);
+ /* flush has to make sure that the pending communications are achieved */
+ gras_error_t (*flush)(gras_socket_t *sd);
+
+ 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) */
+ void (*exit)(gras_trp_plugin_t *);
};
gras_error_t