mirror of
https://gitlab.freedesktop.org/dbus/dbus.git
synced 2025-12-22 07:50:09 +01:00
80 lines
1.4 KiB
C#
80 lines
1.4 KiB
C#
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);
|
|
}
|
|
}
|