mirror of
https://gitlab.freedesktop.org/dbus/dbus.git
synced 2025-12-22 14:50:11 +01:00
60 lines
1.1 KiB
C#
60 lines
1.1 KiB
C#
namespace DBus
|
|
{
|
|
|
|
using System;
|
|
using System.Runtime.InteropServices;
|
|
using System.Diagnostics;
|
|
|
|
// FIXME add code to verify that size of DBus.Error
|
|
// matches the C code.
|
|
|
|
[StructLayout (LayoutKind.Sequential)]
|
|
internal struct Error
|
|
{
|
|
internal IntPtr name;
|
|
internal IntPtr message;
|
|
private int dummies;
|
|
private IntPtr padding1;
|
|
|
|
public void Init()
|
|
{
|
|
dbus_error_init(ref this);
|
|
}
|
|
|
|
public void Free()
|
|
{
|
|
dbus_error_free(ref this);
|
|
}
|
|
|
|
public string Message
|
|
{
|
|
get
|
|
{
|
|
return System.Runtime.InteropServices.Marshal.PtrToStringAnsi(message);
|
|
}
|
|
}
|
|
|
|
public string Name
|
|
{
|
|
get
|
|
{
|
|
return System.Runtime.InteropServices.Marshal.PtrToStringAnsi(name);
|
|
}
|
|
}
|
|
|
|
public bool IsSet
|
|
{
|
|
get
|
|
{
|
|
return (name != IntPtr.Zero);
|
|
}
|
|
}
|
|
|
|
|
|
[DllImport ("dbus-1", EntryPoint="dbus_error_init")]
|
|
private extern static void dbus_error_init (ref Error error);
|
|
|
|
[DllImport ("dbus-1", EntryPoint="dbus_error_free")]
|
|
private extern static void dbus_error_free (ref Error error);
|
|
}
|
|
}
|