summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorHavoc Pennington <hp@redhat.com>2005-01-15 07:15:38 +0000
committerHavoc Pennington <hp@redhat.com>2005-01-15 07:15:38 +0000
commit9c3d566e95c9080f6040c64531b0ccae22bd5d74 (patch)
treed21a18baa5a5ee9855c8a00eb2c1985bc23ca65f /tools
parent6ec04e917c8b4d477e818aa65ebb5e1fd50e4395 (diff)
downloaddbus-9c3d566e95c9080f6040c64531b0ccae22bd5d74.tar.gz
2005-01-15 Havoc Pennington <hp@redhat.com>
* Land the new message args API and type system. This patch is huge, but the public API change is not really large. The set of D-BUS types has changed somewhat, and the arg "getters" are more geared toward language bindings; they don't make a copy, etc. There are also some known issues. See these emails for details on this huge patch: http://lists.freedesktop.org/archives/dbus/2004-December/001836.html http://lists.freedesktop.org/archives/dbus/2005-January/001922.html * dbus/dbus-marshal-*: all the new stuff * dbus/dbus-message.c: basically rewritten * dbus/dbus-memory.c (check_guards): with "guards" enabled, init freed blocks to be all non-nul bytes so using freed memory is less likely to work right * dbus/dbus-internals.c (_dbus_test_oom_handling): add DBUS_FAIL_MALLOC=N environment variable, so you can do DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or DBUS_FAIL_MALLOC=10 to make it really, really, really slow and thorough. * qt/message.cpp: port to the new message args API (operator<<): use str.utf8() rather than str.unicode() (pretty sure this is right from the Qt docs?) * glib/dbus-gvalue.c: port to the new message args API * bus/dispatch.c, bus/driver.c: port to the new message args API * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the "locked" flag to TRUE and align_offset to 0; I guess we never looked at these anyhow, but seems cleaner. * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING): move allocation padding macro to this header; use it to implement (_DBUS_STRING_STATIC): ability to declare a static string. * dbus/dbus-message.c (_dbus_message_has_type_interface_member): change to return TRUE if the interface is not set. * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff to dbus-marshal-validate.[hc] * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from dbus-internals.c * dbus/Makefile.am: cut over from dbus-marshal.[hc] to dbus-marshal-*.[hc] * dbus/dbus-object-tree.c (_dbus_decompose_path): move this function here from dbus-marshal.c
Diffstat (limited to 'tools')
-rw-r--r--tools/dbus-print-message.c14
-rw-r--r--tools/dbus-send.c20
2 files changed, 20 insertions, 14 deletions
diff --git a/tools/dbus-print-message.c b/tools/dbus-print-message.c
index 43c41c73..572a1d14 100644
--- a/tools/dbus-print-message.c
+++ b/tools/dbus-print-message.c
@@ -84,7 +84,7 @@ print_message (DBusMessage *message)
do
{
int type = dbus_message_iter_get_arg_type (&iter);
- char *str;
+ const char *str;
dbus_uint32_t uint32;
dbus_int32_t int32;
double d;
@@ -97,32 +97,32 @@ print_message (DBusMessage *message)
switch (type)
{
case DBUS_TYPE_STRING:
- str = dbus_message_iter_get_string (&iter);
+ dbus_message_iter_get_basic (&iter, &str);
printf ("string:%s\n", str);
break;
case DBUS_TYPE_INT32:
- int32 = dbus_message_iter_get_int32 (&iter);
+ dbus_message_iter_get_basic (&iter, &int32);
printf ("int32:%d\n", int32);
break;
case DBUS_TYPE_UINT32:
- uint32 = dbus_message_iter_get_uint32 (&iter);
+ dbus_message_iter_get_basic (&iter, &uint32);
printf ("int32:%u\n", uint32);
break;
case DBUS_TYPE_DOUBLE:
- d = dbus_message_iter_get_double (&iter);
+ dbus_message_iter_get_basic (&iter, &d);
printf ("double:%f\n", d);
break;
case DBUS_TYPE_BYTE:
- byte = dbus_message_iter_get_byte (&iter);
+ dbus_message_iter_get_basic (&iter, &byte);
printf ("byte:%d\n", byte);
break;
case DBUS_TYPE_BOOLEAN:
- boolean = dbus_message_iter_get_boolean (&iter);
+ dbus_message_iter_get_basic (&iter, &boolean);
printf ("boolean:%s\n", boolean ? "true" : "false");
break;
diff --git a/tools/dbus-send.c b/tools/dbus-send.c
index 81ecac7e..67411b46 100644
--- a/tools/dbus-send.c
+++ b/tools/dbus-send.c
@@ -215,33 +215,39 @@ main (int argc, char *argv[])
{
case DBUS_TYPE_BYTE:
byte = strtoul (c, NULL, 0);
- dbus_message_iter_append_byte (&iter, byte);
+ dbus_message_iter_append_basic (&iter, DBUS_TYPE_BYTE, &byte);
break;
case DBUS_TYPE_DOUBLE:
d = strtod (c, NULL);
- dbus_message_iter_append_double (&iter, d);
+ dbus_message_iter_append_basic (&iter, DBUS_TYPE_DOUBLE, &d);
break;
case DBUS_TYPE_INT32:
int32 = strtol (c, NULL, 0);
- dbus_message_iter_append_int32 (&iter, int32);
+ dbus_message_iter_append_basic (&iter, DBUS_TYPE_INT32, &int32);
break;
case DBUS_TYPE_UINT32:
uint32 = strtoul (c, NULL, 0);
- dbus_message_iter_append_uint32 (&iter, uint32);
+ dbus_message_iter_append_basic (&iter, DBUS_TYPE_UINT32, &uint32);
break;
case DBUS_TYPE_STRING:
- dbus_message_iter_append_string (&iter, c);
+ dbus_message_iter_append_basic (&iter, DBUS_TYPE_STRING, &c);
break;
case DBUS_TYPE_BOOLEAN:
if (strcmp(c, "true") == 0)
- dbus_message_iter_append_boolean (&iter, TRUE);
+ {
+ byte = TRUE;
+ dbus_message_iter_append_basic (&iter, DBUS_TYPE_BOOLEAN, &c);
+ }
else if (strcmp(c, "false") == 0)
- dbus_message_iter_append_boolean (&iter, FALSE);
+ {
+ byte = FALSE;
+ dbus_message_iter_append_basic (&iter, DBUS_TYPE_BOOLEAN, &c);
+ }
else
{
fprintf (stderr, "%s: Expected \"true\" or \"false\" instead of \"%s\"\n", argv[0], c);