3 /* transport - low level communication (send/receive bunches of bytes) */
5 /* module's public interface exported to end user. */
7 /* Authors: Martin Quinson */
8 /* Copyright (C) 2004 Martin Quinson. */
10 /* This program is free software; you can redistribute it and/or modify it
11 under the terms of the license (GNU LGPL) which comes with this package. */
13 #ifndef GRAS_TRANSPORT_H
14 #define GRAS_TRANSPORT_H
16 #include "xbt/error.h"
18 typedef struct s_gras_socket *gras_socket_t;
20 gras_error_t gras_socket_client(const char *host,
22 /* OUT */ gras_socket_t *dst);
23 gras_error_t gras_socket_server(unsigned short port,
24 /* OUT */ gras_socket_t *dst);
25 void gras_socket_close(gras_socket_t sd);
27 /* get information about socket */
28 int gras_socket_my_port (gras_socket_t sock);
29 int gras_socket_peer_port(gras_socket_t sock);
30 char *gras_socket_peer_name(gras_socket_t sock);
32 /* extended interface to get all details */
33 gras_error_t gras_socket_client_ext(const char *host,
35 unsigned long int bufSize,
37 /* OUT */ gras_socket_t *dst);
38 gras_error_t gras_socket_server_ext(unsigned short port,
39 unsigned long int bufSize,
41 /* OUT */ gras_socket_t *dst);
43 /* using raw sockets */
44 gras_error_t gras_socket_raw_send(gras_socket_t peer,
46 unsigned long int expSize,
47 unsigned long int msgSize);
48 gras_error_t gras_socket_raw_recv(gras_socket_t peer,
50 unsigned long int expSize,
51 unsigned long int msgSize);
53 /* debuging functions */
54 gras_error_t gras_socket_client_from_file(const char*path,
55 /* OUT */ gras_socket_t *dst);
56 gras_error_t gras_socket_server_from_file(const char*path,
57 /* OUT */ gras_socket_t *dst);
60 #endif /* GRAS_TRANSPORT_H */