X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/68ef5e4e1e45f787a75a6f5a08cec549a49043c1..1570a7e2e51f5136dce7490cdb625fe88a0c02b5:/include/gras/messages.h diff --git a/include/gras/messages.h b/include/gras/messages.h index c513e2697c..ded4199309 100644 --- a/include/gras/messages.h +++ b/include/gras/messages.h @@ -92,7 +92,13 @@ typedef struct s_gras_msgtype *gras_msgtype_t; typedef struct s_gras_msg_cb_ctx *gras_msg_cb_ctx_t; gras_socket_t gras_msg_cb_ctx_from(gras_msg_cb_ctx_t ctx); - +gras_msg_cb_ctx_t gras_msg_cb_ctx_new(gras_socket_t expe, + gras_msgtype_t msgtype, + unsigned long int ID, + double timeout); +void gras_msg_cb_ctx_free(gras_msg_cb_ctx_t ctx) ; + + /** \brief Type of message callback functions. * * \param expeditor: a socket to contact who sent this message @@ -130,6 +136,7 @@ gras_socket_t gras_msg_cb_ctx_from(gras_msg_cb_ctx_t ctx); gras_msgtype_t msgt_want, gras_socket_t *expeditor, void *payload); + void gras_msg_handleall(double period); void gras_msg_handle(double timeOut); /** @} */ @@ -165,6 +172,13 @@ 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); @@ -213,12 +227,18 @@ typedef struct { typedef int (*gras_msg_filter_t)(gras_msg_t msg,void *ctx); - void gras_msg_wait_ext(double timeout, - gras_msgtype_t msgt_want, - gras_socket_t expe_want, - gras_msg_filter_t filter, - void *filter_ctx, - gras_msg_t msg_got); +void gras_msg_wait_ext(double timeout, + gras_msgtype_t msgt_want, + gras_socket_t expe_want, + gras_msg_filter_t filter, + void *filter_ctx, + gras_msg_t msg_got); + +void gras_msg_wait_or(double timeout, + xbt_dynar_t msgt_want, + gras_msg_cb_ctx_t *ctx, + int *msgt_got, + void *payload); /* @} */