X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/c8c8c7f474f9ee9df9289b977a5477b7d2b88a86..8c0a8b86fcd472830e5eb55b27f5946b4538aa8a:/include/gras/messages.h diff --git a/include/gras/messages.h b/include/gras/messages.h index d4b768a81d..2e03c1ab90 100644 --- a/include/gras/messages.h +++ b/include/gras/messages.h @@ -71,28 +71,6 @@ typedef struct s_gras_msgtype *gras_msgtype_t; gras_msgtype_t gras_msgtype_by_namev(const char *name, short int version); gras_msgtype_t gras_msgtype_by_id(int id); -/** @} */ -/** @defgroup GRAS_msg_rpcdecl RPC declaration - * @ingroup GRAS_msg - * - * Remote Procedure Call (RPC) are a classical mecanism to request a service - * from a remote host. Using this set of functions, you let GRAS doing most of - * the work of sending the request, wait for an answer, make sure it is the - * right answer from the right host and so on. Any exception raised on the - * server is also passed over the network to the client. - */ -/** @{ */ - -void gras_msgtype_declare_rpc(const char *name, - gras_datadesc_type_t payload_request, - gras_datadesc_type_t payload_answer); - -void gras_msgtype_declare_rpc_v(const char *name, - short int version, - gras_datadesc_type_t payload_request, - gras_datadesc_type_t payload_answer); - - /** @} */ /** @defgroup GRAS_msg_cb Callback declaration and use * @ingroup GRAS_msg @@ -138,23 +116,6 @@ gras_socket_t gras_msg_cb_ctx_from(gras_msg_cb_ctx_t ctx); /** @} */ -/** @defgroup GRAS_msg_rpc RPC specific functions - * @ingroup GRAS_msg - */ -/** @{ */ - -/* client side */ -void gras_msg_rpccall(gras_socket_t server, - double timeOut, - gras_msgtype_t msgtype, - void *request, void *answer); - -/* server side */ -void gras_msg_rpcreturn(double timeOut, gras_msg_cb_ctx_t ctx,void *answer); - - -/** @} */ - /** @defgroup GRAS_msg_exchange Message exchange * @ingroup GRAS_msg * @@ -172,6 +133,52 @@ void gras_msg_rpcreturn(double timeOut, gras_msg_cb_ctx_t ctx,void *answer); void gras_msg_handle(double timeOut); /** @} */ + +/** @defgroup GRAS_msg_rpc RPC specific functions + * @ingroup GRAS_msg + * + * Remote Procedure Call (RPC) are a classical mecanism to request a service + * from a remote host. Using this set of functions, you let GRAS doing most of + * the work of sending the request, wait for an answer, make sure it is the + * right answer from the right host and so on. Any exception raised on the + * server is also passed over the network to the client. + * + * Callbacks are attached to RPC incomming messages the regular way using + * \ref gras_cb_register. + * + * For an example of use, check the examples/gras/rpc directory of the distribution. + */ +/** @{ */ + +/* declaration */ +void gras_msgtype_declare_rpc(const char *name, + gras_datadesc_type_t payload_request, + gras_datadesc_type_t payload_answer); + +void gras_msgtype_declare_rpc_v(const char *name, + short int version, + gras_datadesc_type_t payload_request, + gras_datadesc_type_t payload_answer); + +/* client side */ +void gras_msg_rpccall(gras_socket_t server, + double timeOut, + gras_msgtype_t msgtype, + void *request, void *answer); +gras_msg_cb_ctx_t +gras_msg_rpc_async_call(gras_socket_t server, + double timeOut, + gras_msgtype_t msgtype, + void *request); +void gras_msg_rpc_async_wait(gras_msg_cb_ctx_t ctx, + void *answer); + +/* server side */ +void gras_msg_rpcreturn(double timeOut, gras_msg_cb_ctx_t ctx,void *answer); + + +/** @} */ + /** @defgroup GRAS_msg_exchangeadv Message exchange (advanced interface) * @ingroup GRAS_msg *