From b0002eb697ec4b1e35846b51d9e6e1a7824e0b03 Mon Sep 17 00:00:00 2001 From: Joe Shaw Date: Tue, 25 Jan 2005 19:47:13 +0000 Subject: 2005-01-25 Joe Shaw * Land the mono binding changes to conform to the new APIs. * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs, DBusType/Dict.cs, and DBusType/Nil.cs from the build. * mono/Arguments.cs (GetCodeAsString): Added. Returns the dbus type code as a string. (InitAppending): Rename dbus_message_append_iter_init() to dbus_message_iter_init_append(). * mono/BusDriver.cs: Rename ServiceEventHandler to NameOwnerChangedHandler. Rename GetServiceOwner to GetOwner. Rename ServiceOwnerChanged to NameOwnerChanged. * mono/Connection.cs: Rename BaseService to UniqueName, and the underlying C call. * mono/Custom.cs: Removed. The CUSTOM type has been removed. * mono/Service.cs: Rename Exists to HasOwner, internally rename dbus_bus_acquire_service() to dbus_bus_request_name(). * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead of Type.UnderlyingSystemType to get the correct element type for the array. (ctor): Update code for new APIs: use dbus_message_iter_recurse(), dbus_message_get_{element|arg}_type() instead of dbus_message_iter_init_array_iterator(). (Append): Replace dbus_message_iter_append_array() with dbus_message_iter_open_container() and dbus_message_iter_close_container(). * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed. These types have been removed. * mono/DBusType/*.cs: Replace calls of dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(), but specify the type in the DllImport extern declaration. Ditto for dbus_message_iter_append_[type]() -> dbus_message_iter_append_basic(). * mono/example/BusListener.cs: Update for ServiceEventHandler -> NameOwnerChangedHandler. --- mono/DBusType/String.cs | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'mono/DBusType/String.cs') diff --git a/mono/DBusType/String.cs b/mono/DBusType/String.cs index bced310a..bf354ea0 100644 --- a/mono/DBusType/String.cs +++ b/mono/DBusType/String.cs @@ -25,12 +25,18 @@ namespace DBus.DBusType public String(IntPtr iter, Service service) { - this.val = Marshal.PtrToStringAnsi(dbus_message_iter_get_string(iter)); + IntPtr raw; + + dbus_message_iter_get_basic (iter, out raw); + + this.val = Marshal.PtrToStringAnsi (raw); } public void Append(IntPtr iter) { - if (!dbus_message_iter_append_string(iter, Marshal.StringToHGlobalAnsi(val))) + IntPtr marshalVal = Marshal.StringToHGlobalAnsi (val); + + if (!dbus_message_iter_append_basic (iter, (int) Code, ref marshalVal)) throw new ApplicationException("Failed to append STRING argument:" + val); } @@ -78,9 +84,9 @@ namespace DBus.DBusType } [DllImport("dbus-1")] - private extern static IntPtr dbus_message_iter_get_string(IntPtr iter); + private extern static void dbus_message_iter_get_basic (IntPtr iter, out IntPtr value); [DllImport("dbus-1")] - private extern static bool dbus_message_iter_append_string(IntPtr iter, IntPtr value); + private extern static bool dbus_message_iter_append_basic (IntPtr iter, int type, ref IntPtr value); } } -- cgit