msgt_want, NULL, NULL, NULL,
&msg);
+ if (msgt_want->ctn_type) {
+ xbt_assert1(payload,
+ "Message type '%s' convey a payload you must accept",
+ msgt_want->name);
+ } else {
+ xbt_assert1(!payload,
+ "No payload was declared for message type '%s'",
+ msgt_want->name);
+ }
+
if (payload) {
memcpy(payload,msg.payl,msg.payl_size);
free(msg.payl);
gras_msgtype_t msgtype,
void *payload) {
+ if (msgtype->ctn_type) {
+ xbt_assert1(payload,
+ "Message type '%s' convey a payload you must provide",
+ msgtype->name);
+ } else {
+ xbt_assert1(!payload,
+ "No payload was declared for message type '%s'",
+ msgtype->name);
+ }
+
gras_msg_send_ext(sock, e_gras_msg_kind_oneway,0, msgtype, payload);
}
void *request) {
gras_msg_cb_ctx_t ctx = xbt_new0(s_gras_msg_cb_ctx_t,1);
+ if (msgtype->ctn_type) {
+ xbt_assert1(request,
+ "RPC type '%s' convey a payload you must provide",
+ msgtype->name);
+ } else {
+ xbt_assert1(!request,
+ "No payload was declared for RPC type '%s'",
+ msgtype->name);
+ }
+
ctx->ID = last_msg_ID++;
ctx->expeditor = server;
ctx->msgtype=msgtype;
void *answer) {
s_gras_msg_t received;
+ if (ctx->msgtype->answer_type) {
+ xbt_assert1(answer,
+ "Answers to RPC '%s' convey a payload you must accept",
+ ctx->msgtype->name);
+ } else {
+ xbt_assert1(!answer,
+ "No payload was declared for answers to RPC '%s'",
+ ctx->msgtype->name);
+ }
+
gras_msg_wait_ext(ctx->timeout,
ctx->msgtype, NULL, msgfilter_rpcID, &ctx->ID,
&received);