summaryrefslogtreecommitdiffstats
path: root/dbus/dbus-message.c
diff options
context:
space:
mode:
authorAnders Carlsson <andersca@codefactory.se>2003-01-06 22:09:16 +0000
committerAnders Carlsson <andersca@codefactory.se>2003-01-06 22:09:16 +0000
commit5175ad00e1d648a89efdf8d397b31bf84fd203c8 (patch)
treefd610f81616ccc7309a43e4eee8206d6c5e08abf /dbus/dbus-message.c
parent5cf7ec5c399537b89fdbf6637413c4d2c002f4a4 (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.c111
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);
+}
+
/** @} */
/**