From b61b94a14488f22ab7f136dc0a9f6c7787d3f510 Mon Sep 17 00:00:00 2001 From: Ryan Lortie Date: Wed, 9 Mar 2005 23:12:24 +0000 Subject: This commit was manufactured by cvs2svn to create tag 'dbus-0.23.3'. --- mono/Arguments.cs | 12 +++--------- mono/Connection.cs | 13 ++++++------- mono/DBusType/ObjectPath.cs | 20 +++++++++++--------- mono/DBusType/String.cs | 21 +++++++++++---------- mono/Service.cs | 22 ++++++++++------------ 5 files changed, 41 insertions(+), 47 deletions(-) (limited to 'mono') diff --git a/mono/Arguments.cs b/mono/Arguments.cs index 61ae443f..f8e3ccea 100644 --- a/mono/Arguments.cs +++ b/mono/Arguments.cs @@ -191,12 +191,6 @@ namespace DBus return (char) dbusType.InvokeMember("Code", BindingFlags.Static | BindingFlags.GetField, null, null, null); } - // Get the type code for a given D-BUS type as a string - public static string GetCodeAsString (Type dbusType) - { - return GetCode (dbusType).ToString (); - } - // Get a complete method signature public override string ToString() { @@ -215,7 +209,7 @@ namespace DBus key += code; } while (dbus_message_iter_next(iter)); } - + Marshal.FreeCoTaskMem(iter); return key; @@ -231,7 +225,7 @@ namespace DBus // Begin appending public void InitAppending() { - dbus_message_iter_init_append(message.RawMessage, appenderIter); + dbus_message_append_iter_init(message.RawMessage, appenderIter); } // Get the enumerator @@ -291,7 +285,7 @@ namespace DBus } [DllImport("dbus-1")] - private extern static void dbus_message_iter_init_append(IntPtr rawMessage, IntPtr iter); + private extern static void dbus_message_append_iter_init(IntPtr rawMessage, IntPtr iter); [DllImport("dbus-1")] private extern static bool dbus_message_iter_has_next(IntPtr iter); diff --git a/mono/Connection.cs b/mono/Connection.cs index af0764db..50b2dd99 100644 --- a/mono/Connection.cs +++ b/mono/Connection.cs @@ -161,23 +161,22 @@ namespace DBus { if (!dbus_connection_register_object_path (RawConnection, path, ref vtable, IntPtr.Zero)) throw new OutOfMemoryException (); - + this.object_paths[path] = vtable; } - + internal void UnregisterObjectPath (string path) { dbus_connection_unregister_object_path (RawConnection, path); - + this.object_paths.Remove (path); } - - public string UniqueName + public string BaseService { get { - return Marshal.PtrToStringAnsi (dbus_bus_get_unique_name (RawConnection)); + return Marshal.PtrToStringAnsi (dbus_bus_get_base_service (RawConnection)); } } @@ -317,7 +316,7 @@ namespace DBus private extern static void dbus_connection_disconnect (IntPtr ptr); [DllImport ("dbus-1")] - private extern static IntPtr dbus_bus_get_unique_name (IntPtr ptr); + private extern static IntPtr dbus_bus_get_base_service (IntPtr ptr); [DllImport("dbus-1")] private extern static bool dbus_connection_add_filter(IntPtr rawConnection, diff --git a/mono/DBusType/ObjectPath.cs b/mono/DBusType/ObjectPath.cs index 4f064d59..38952f4e 100644 --- a/mono/DBusType/ObjectPath.cs +++ b/mono/DBusType/ObjectPath.cs @@ -28,11 +28,10 @@ namespace DBus.DBusType public ObjectPath(IntPtr iter, Service service) { - IntPtr raw; + IntPtr raw_str = dbus_message_iter_get_object_path (iter); + this.path = Marshal.PtrToStringAnsi (raw_str); + dbus_free (raw_str); - dbus_message_iter_get_basic (iter, out raw); - - this.path = Marshal.PtrToStringAnsi (raw); this.service = service; } @@ -50,10 +49,10 @@ namespace DBus.DBusType public void Append(IntPtr iter) { - IntPtr marshalVal = Marshal.StringToHGlobalAnsi (Path); + IntPtr raw_str = Marshal.StringToHGlobalAnsi (Path); - bool success = dbus_message_iter_append_basic (iter, (int) Code, ref marshalVal); - Marshal.FreeHGlobal (marshalVal); + bool success = dbus_message_iter_append_object_path (iter, raw_str); + Marshal.FreeHGlobal (raw_str); if (!success) throw new ApplicationException("Failed to append OBJECT_PATH argument:" + val); @@ -99,9 +98,12 @@ namespace DBus.DBusType } [DllImport("dbus-1")] - private extern static void dbus_message_iter_get_basic (IntPtr iter, out IntPtr path); + private extern static IntPtr dbus_message_iter_get_object_path(IntPtr iter); [DllImport("dbus-1")] - private extern static bool dbus_message_iter_append_basic (IntPtr iter, int type, ref IntPtr path); + private extern static bool dbus_message_iter_append_object_path(IntPtr iter, IntPtr path); + + [DllImport("dbus-1")] + private extern static void dbus_free (IntPtr raw); } } diff --git a/mono/DBusType/String.cs b/mono/DBusType/String.cs index 3b619cfb..9d7502fa 100644 --- a/mono/DBusType/String.cs +++ b/mono/DBusType/String.cs @@ -25,19 +25,17 @@ namespace DBus.DBusType public String(IntPtr iter, Service service) { - IntPtr raw; - - dbus_message_iter_get_basic (iter, out raw); - - this.val = Marshal.PtrToStringAnsi (raw); + IntPtr raw_str = dbus_message_iter_get_string (iter); + this.val = Marshal.PtrToStringAnsi (raw_str); + dbus_free (raw_str); } public void Append(IntPtr iter) { - IntPtr marshalVal = Marshal.StringToHGlobalAnsi (val); + IntPtr raw_str = Marshal.StringToHGlobalAnsi (val); - bool success = dbus_message_iter_append_basic (iter, (int) Code, ref marshalVal); - Marshal.FreeHGlobal (marshalVal); + bool success = dbus_message_iter_append_string (iter, raw_str); + Marshal.FreeHGlobal (raw_str); if (!success) throw new ApplicationException("Failed to append STRING argument:" + val); @@ -87,9 +85,12 @@ namespace DBus.DBusType } [DllImport("dbus-1")] - private extern static void dbus_message_iter_get_basic (IntPtr iter, out IntPtr value); + private extern static IntPtr dbus_message_iter_get_string(IntPtr iter); [DllImport("dbus-1")] - private extern static bool dbus_message_iter_append_basic (IntPtr iter, int type, ref IntPtr value); + private extern static bool dbus_message_iter_append_string(IntPtr iter, IntPtr value); + + [DllImport("dbus-1")] + private extern static void dbus_free (IntPtr raw); } } diff --git a/mono/Service.cs b/mono/Service.cs index 40703a53..fc423b0f 100644 --- a/mono/Service.cs +++ b/mono/Service.cs @@ -20,9 +20,6 @@ namespace DBus private static AssemblyBuilder proxyAssembly; private ModuleBuilder module = null; - // Add a match for signals. FIXME: Can we filter the service? - private const string MatchRule = "type='signal'"; - internal Service(string name, Connection connection) { this.name = name; @@ -38,7 +35,7 @@ namespace DBus // This isn't used for now uint flags = 0; - if (dbus_bus_request_name (connection.RawConnection, name, flags, ref error) == -1) { + if (dbus_bus_acquire_service(connection.RawConnection, name, flags, ref error) == -1) { throw new DBusException(error); } @@ -47,12 +44,12 @@ namespace DBus this.local = true; } - public static bool HasOwner(Connection connection, string name) + public static bool Exists(Connection connection, string name) { Error error = new Error(); error.Init(); - if (dbus_bus_name_has_owner(connection.RawConnection, + if (dbus_bus_service_exists(connection.RawConnection, name, ref error)) { return true; @@ -66,10 +63,10 @@ namespace DBus public static Service Get(Connection connection, string name) { - if (HasOwner(connection, name)) { + if (Exists(connection, name)) { return new Service(name, connection); } else { - throw new ApplicationException("Name '" + name + "' does not exist."); + throw new ApplicationException("Service '" + name + "' does not exist."); } } @@ -178,14 +175,15 @@ namespace DBus } [DllImport("dbus-1")] - private extern static int dbus_bus_request_name(IntPtr rawConnection, - string serviceName, - uint flags, ref Error error); + private extern static int dbus_bus_acquire_service(IntPtr rawConnection, + string serviceName, + uint flags, ref Error error); [DllImport("dbus-1")] - private extern static bool dbus_bus_name_has_owner(IntPtr rawConnection, + private extern static bool dbus_bus_service_exists(IntPtr rawConnection, string serviceName, ref Error error); + } } -- cgit