diff options
author | Anders Carlsson <andersca@codefactory.se> | 2003-01-06 22:09:16 +0000 |
---|---|---|
committer | Anders Carlsson <andersca@codefactory.se> | 2003-01-06 22:09:16 +0000 |
commit | 5175ad00e1d648a89efdf8d397b31bf84fd203c8 (patch) | |
tree | fd610f81616ccc7309a43e4eee8206d6c5e08abf /dbus/dbus-message.c | |
parent | 5cf7ec5c399537b89fdbf6637413c4d2c002f4a4 (diff) |
2003-01-07 Anders Carlsson <andersca@codefactory.se>
* dbus/dbus-marshal.c: (_dbus_marshal_string),
(_dbus_demarshal_string), (_dbus_marshal_test):
* dbus/dbus-marshal.h:
Document these functions.
* dbus/dbus-message.c: (dbus_message_get_name),
(dbus_message_append_int32), (dbus_message_append_uint32),
(dbus_message_append_double), (dbus_message_append_string),
(dbus_message_append_byte_array):
* dbus/dbus-message.h:
Add functions for adding message fields of different types.
* dbus/dbus-protocol.h:
Add the different types.
Diffstat (limited to 'dbus/dbus-message.c')
-rw-r--r-- | dbus/dbus-message.c | 111 |
1 files changed, 111 insertions, 0 deletions
diff --git a/dbus/dbus-message.c b/dbus/dbus-message.c index aed943f7..b7f66644 100644 --- a/dbus/dbus-message.c +++ b/dbus/dbus-message.c @@ -22,6 +22,7 @@ */ #include "dbus-internals.h" +#include "dbus-marshal.h" #include "dbus-message.h" #include "dbus-message-internal.h" #include "dbus-memory.h" @@ -202,6 +203,7 @@ dbus_message_unref (DBusMessage *message) /** * Gets the name of a message. + * * @param message the message * @returns the message name (should not be freed) */ @@ -213,6 +215,115 @@ dbus_message_get_name (DBusMessage *message) return NULL; } +/** + * Appends a 32 bit signed integer to the message. + * + * @param message the message + * @param value the integer value + * @returns #TRUE on success + */ +dbus_bool_t +dbus_message_append_int32 (DBusMessage *message, + dbus_int32_t value) +{ + _dbus_assert (message != NULL); + _dbus_assert (!message->locked); + + if (!_dbus_string_append_byte (&message->body, DBUS_TYPE_INT32)) + return FALSE; + + return _dbus_marshal_int32 (&message->body, + DBUS_COMPILER_BYTE_ORDER, value); +} + +/** + * Appends a 32 bit unsigned integer to the message. + * + * @param message the message + * @param value the integer value + * @returns #TRUE on success + */ +dbus_bool_t +dbus_message_append_uint32 (DBusMessage *message, + dbus_uint32_t value) +{ + _dbus_assert (message != NULL); + _dbus_assert (!message->locked); + + if (!_dbus_string_append_byte (&message->body, DBUS_TYPE_UINT32)) + return FALSE; + + return _dbus_marshal_uint32 (&message->body, + DBUS_COMPILER_BYTE_ORDER, value); +} + +/** + * Appends a double value to the message. + * + * @param message the message + * @param value the double value + * @returns #TRUE on success + */ +dbus_bool_t +dbus_message_append_double (DBusMessage *message, + double value) +{ + _dbus_assert (message != NULL); + _dbus_assert (!message->locked); + + if (!_dbus_string_append_byte (&message->body, DBUS_TYPE_INT32)) + return FALSE; + + return _dbus_marshal_double (&message->body, + DBUS_COMPILER_BYTE_ORDER, value); +} + +/** + * Appends a UTF-8 string to the message. + * + * @param message the message + * @param value the string + * @returns #TRUE on success + */ +dbus_bool_t +dbus_message_append_string (DBusMessage *message, + const char *value) +{ + _dbus_assert (message != NULL); + _dbus_assert (!message->locked); + _dbus_assert (value != NULL); + + if (!_dbus_string_append_byte (&message->body, DBUS_TYPE_UTF8_STRING)) + return FALSE; + + return _dbus_marshal_string (&message->body, + DBUS_COMPILER_BYTE_ORDER, value); +} + +/** + * Appends a byte array to the message. + * + * @param message the message + * @param value the array + * @param len the length of the array + * @returns #TRUE on success + */ +dbus_bool_t +dbus_message_append_byte_array (DBusMessage *message, + unsigned const char *value, + int len) +{ + _dbus_assert (message != NULL); + _dbus_assert (!message->locked); + _dbus_assert (value != NULL); + + if (!_dbus_string_append_byte (&message->body, DBUS_TYPE_BYTE_ARRAY)) + return FALSE; + + return _dbus_marshal_byte_array (&message->body, + DBUS_COMPILER_BYTE_ORDER, value, len); +} + /** @} */ /** |