From 2fef76db1555f49cff7f2baeec7fa084c8a5facb Mon Sep 17 00:00:00 2001 From: Vincent Sanders Date: Mon, 26 Nov 2012 16:24:48 +0000 Subject: add errorcode content broadcast API --- content/content.c | 17 +++++++++++++++++ content/content_protected.h | 5 +++++ 2 files changed, 22 insertions(+) (limited to 'content') diff --git a/content/content.c b/content/content.c index 353abeeb0..1a92e408b 100644 --- a/content/content.c +++ b/content/content.c @@ -678,6 +678,23 @@ void content_broadcast(struct content *c, content_msg msg, } } +/* exported interface documented in content_protected.h */ +void content_broadcast_errorcode(struct content *c, nserror errorcode) +{ + struct content_user *user, *next; + union content_msg_data data; + + assert(c); + + data.errorcode = errorcode; + + for (user = c->user_list->next; user != 0; user = next) { + next = user->next; /* user may be destroyed during callback */ + if (user->callback != 0) + user->callback(c, CONTENT_MSG_ERRORCODE, data, user->pw); + } +} + /** * A window containing the content has been opened. diff --git a/content/content_protected.h b/content/content_protected.h index e39979768..ecbe17fc7 100644 --- a/content/content_protected.h +++ b/content/content_protected.h @@ -160,6 +160,11 @@ void content_set_error(struct content *c); void content_set_status(struct content *c, const char *status_message); void content_broadcast(struct content *c, content_msg msg, union content_msg_data data); +/** + * Send an errorcode message to all users. + */ +void content_broadcast_errorcode(struct content *c, nserror errorcode); + void content_add_error(struct content *c, const char *token, unsigned int line); -- cgit v1.2.3