diff options
author | Havoc Pennington <hp@redhat.com> | 2005-01-15 07:15:38 +0000 |
---|---|---|
committer | Havoc Pennington <hp@redhat.com> | 2005-01-15 07:15:38 +0000 |
commit | 9c3d566e95c9080f6040c64531b0ccae22bd5d74 (patch) | |
tree | d21a18baa5a5ee9855c8a00eb2c1985bc23ca65f /tools | |
parent | 6ec04e917c8b4d477e818aa65ebb5e1fd50e4395 (diff) | |
download | dbus-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.c | 14 | ||||
-rw-r--r-- | tools/dbus-send.c | 20 |
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); |