diff options
author | Marcel Holtmann <marcel@holtmann.org> | 2008-05-27 17:48:01 +0000 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2008-05-27 17:48:01 +0000 |
commit | 671e8bc7340909da8b0fe750176423113e9ea8c1 (patch) | |
tree | a2dc99f1fbfd3555105b61993eaa041b7110b9a0 | |
parent | 8162199a0b96cb8d41196c65824b55121256e9df (diff) |
Add helpers for creating replies
-rw-r--r-- | gdbus/gdbus.h | 3 | ||||
-rw-r--r-- | gdbus/object.c | 31 |
2 files changed, 34 insertions, 0 deletions
diff --git a/gdbus/gdbus.h b/gdbus/gdbus.h index 66baa852..dc337954 100644 --- a/gdbus/gdbus.h +++ b/gdbus/gdbus.h @@ -175,6 +175,9 @@ DBusMessage *g_dbus_create_error_valist(DBusMessage *message, const char *name, const char *format, va_list args); DBusMessage *g_dbus_create_error(DBusMessage *message, const char *name, const char *format, ...); +DBusMessage *g_dbus_create_reply(DBusMessage *message, int type, ...); +DBusMessage *g_dbus_create_reply_valist(DBusMessage *message, + int type, va_list args); typedef void (*name_cb_t)(const char *name, void *user_data); diff --git a/gdbus/object.c b/gdbus/object.c index 869482a4..56ff4433 100644 --- a/gdbus/object.c +++ b/gdbus/object.c @@ -879,3 +879,34 @@ DBusMessage *g_dbus_create_error(DBusMessage *message, const char *name, return reply; } + +DBusMessage *g_dbus_create_reply_valist(DBusMessage *message, + int type, va_list args) +{ + DBusMessage *reply; + + reply = dbus_message_new_method_return(message); + if (reply == NULL) + return NULL; + + if (dbus_message_append_args_valist(reply, type, args) == FALSE) { + dbus_message_unref(reply); + return NULL; + } + + return reply; +} + +DBusMessage *g_dbus_create_reply(DBusMessage *message, int type, ...) +{ + va_list args; + DBusMessage *reply; + + va_start(args, type); + + reply = g_dbus_create_reply_valist(message, type, args); + + va_end(args); + + return reply; +} |