From c916037773d7d3d8d37ca2c5a8899b7b728e377d Mon Sep 17 00:00:00 2001 From: Owen Fraser-Green Date: Tue, 23 Mar 2004 12:10:32 +0000 Subject: First checkin of the Mono bindings. --- mono/MethodCall.cs | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 mono/MethodCall.cs (limited to 'mono/MethodCall.cs') diff --git a/mono/MethodCall.cs b/mono/MethodCall.cs new file mode 100644 index 00000000..ab7a4a36 --- /dev/null +++ b/mono/MethodCall.cs @@ -0,0 +1,80 @@ +namespace DBus +{ + using System; + using System.Runtime.InteropServices; + using System.Diagnostics; + + public class MethodCall : Message + { + public MethodCall() : base(MessageType.MethodCall) + { + } + + internal MethodCall(IntPtr rawMessage, Service service) : base(rawMessage, service) + { + } + + public MethodCall(Service service) : base(MessageType.MethodCall, service) + { + } + + public MethodCall(Service service, string pathName, string interfaceName, string name) + { + this.service = service; + + RawMessage = dbus_message_new_method_call(service.Name, pathName, interfaceName, name); + + if (RawMessage == IntPtr.Zero) { + throw new OutOfMemoryException(); + } + + this.pathName = pathName; + this.interfaceName = interfaceName; + this.name = name; + + dbus_message_unref(RawMessage); + } + + public new string PathName + { + get + { + return base.PathName; + } + + set + { + base.PathName = value; + } + } + + public new string InterfaceName + { + get + { + return base.InterfaceName; + } + + set + { + base.InterfaceName = value; + } + } + + public new string Name + { + get + { + return base.Name; + } + + set + { + base.Name = value; + } + } + + [DllImport("dbus-1")] + private extern static IntPtr dbus_message_new_method_call(string serviceName, string pathName, string interfaceName, string name); + } +} -- cgit