From 208debc0db79d1901a4655d3015218bb4700cd8c Mon Sep 17 00:00:00 2001 From: mquinson Date: Wed, 18 Aug 2004 19:21:33 +0000 Subject: [PATCH 1/1] Interface cleanup: msgtype_by_name return the searched type (or NULL if not found) git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@382 48e7efb5-ca39-0410-a469-dd3cf9ba447f --- include/gras/messages.h | 9 +++------ src/gras/Msg/msg.c | 30 +++++++++++++++++++----------- 2 files changed, 22 insertions(+), 17 deletions(-) diff --git a/include/gras/messages.h b/include/gras/messages.h index ca644b1a20..ebe905999d 100644 --- a/include/gras/messages.h +++ b/include/gras/messages.h @@ -44,12 +44,9 @@ gras_error_t gras_msgtype_declare_v(const char *name, short int version, gras_datadesc_type_t *payload); -gras_error_t gras_msgtype_by_name (const char *name, - gras_msgtype_t **dst); -gras_error_t gras_msgtype_by_namev(const char *name, - short int version, - gras_msgtype_t **dst); - +gras_msgtype_t *gras_msgtype_by_name (const char *name); +gras_msgtype_t *gras_msgtype_by_namev(const char *name, + short int version); /** * gras_cb_t: diff --git a/src/gras/Msg/msg.c b/src/gras/Msg/msg.c index 998f1f1630..23ceb57b3c 100644 --- a/src/gras/Msg/msg.c +++ b/src/gras/Msg/msg.c @@ -161,30 +161,29 @@ gras_msgtype_declare_v(const char *name, * * Retrieve a datatype description from its name */ -gras_error_t -gras_msgtype_by_name (const char *name, - gras_msgtype_t **dst) { - return gras_msgtype_by_namev(name,0,dst); +gras_msgtype_t * gras_msgtype_by_name (const char *name) { + return gras_msgtype_by_namev(name,0); } /** * gras_msgtype_by_namev: * * Retrieve a datatype description from its name and version */ -gras_error_t -gras_msgtype_by_namev(const char *name, - short int version, - gras_msgtype_t **dst) { +gras_msgtype_t * gras_msgtype_by_namev(const char *name, + short int version) { + gras_msgtype_t *res; gras_error_t errcode; char *namev = make_namev(name,version); errcode = gras_set_get_by_name(_gras_msgtype_set, namev, - (gras_set_elm_t**)dst); + (gras_set_elm_t**)&res); + if (errcode != no_error) + res = NULL; if (name != namev) free(namev); - - return errcode; + + return res; } /** @@ -199,6 +198,11 @@ gras_msg_send(gras_socket_t *sock, gras_error_t errcode; static gras_datadesc_type_t *string_type=NULL; + + if (!msgtype) + RAISE0(mismatch_error, + "Cannot send the NULL message (did msgtype_by_name fail?)"); + if (!string_type) { string_type = gras_datadesc_by_name("string"); gras_assert(string_type); @@ -298,6 +302,10 @@ gras_msg_wait(double timeout, *expeditor = NULL; payload_got = NULL; + if (!msgt_want) + RAISE0(mismatch_error, + "Cannot wait for the NULL message (did msgtype_by_name fail?)"); + VERB1("Waiting for message %s",msgt_want->name); start = now = gras_os_time(); -- 2.20.1