3 /* messaging - high level communication (send/receive messages) */
5 /* module's private interface masked even to other parts of GRAS. */
7 /* Authors: Martin Quinson */
8 /* Copyright (C) 2003, 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_MESSAGE_PRIVATE_H
14 #define GRAS_MESSAGE_PRIVATE_H
16 #include "gras_config.h"
18 #include "xbt/sysdep.h"
20 #include "xbt/error.h"
21 #include "xbt/dynar.h"
23 #include "gras/transport.h"
24 #include "gras/datadesc.h"
25 #include "gras/virtu.h"
27 #include "gras/messages.h"
28 #include "gras_modinter.h"
30 #include "gras/Msg/msg_interface.h"
35 * Message type descriptor. There one of these for each registered version.
37 typedef struct s_gras_msgtype {
38 /* headers for the data set */
41 unsigned int name_len;
45 gras_datadesc_type_t ctn_type;
48 extern gras_set_t _gras_msgtype_set; /* of gras_msgtype_t */
49 void gras_msgtype_free(void *msgtype);
52 gras_error_t gras_msg_recv(gras_socket_t sock,
53 gras_msgtype_t *msgtype,
60 * association between msg ID and cb list for a given process
62 struct s_gras_cblist {
64 gras_dynar_t cbs; /* of gras_msg_cb_t */
67 void gras_cblist_free(void *cbl);
69 #endif /* GRAS_MESSAGE_PRIVATE_H */