summaryrefslogtreecommitdiffstats
path: root/mono/Message.cs
diff options
context:
space:
mode:
authorJon Trowbridge <trow@ximian.com>2004-08-31 03:59:14 +0000
committerJon Trowbridge <trow@ximian.com>2004-08-31 03:59:14 +0000
commit4a77a2dd972e817a08a4571220c8406709af8c48 (patch)
tree9a4ce9513836303b870b0f266f18b76900caa186 /mono/Message.cs
parent3a78ce17957de8f56b33bd0d25c2974c740a3b8b (diff)
2004-08-30 Jon Trowbridge <trow@ximian.com>
* mono/BusDriver.cs: Added. This is a class for interacting with the org.freedesktop.DBus service. * mono/Message.cs: Added a mechanism to expose the message that is currently being dispatched via the static Message.Current property. Added Message.Sender and Message.Destination properties. * mono/Handler.cs: Expose the dispatched message via Message.Current when handling method calls. * mono/Service.cs: Expose the dispatched message via Message.Current when handling signal emissions. * mono/Connection.cs: Bind dbus_bus_get_base_service via the Connection.BaseService property.
Diffstat (limited to 'mono/Message.cs')
-rw-r--r--mono/Message.cs38
1 files changed, 38 insertions, 0 deletions
diff --git a/mono/Message.cs b/mono/Message.cs
index 54472d1e..5aa3542f 100644
--- a/mono/Message.cs
+++ b/mono/Message.cs
@@ -8,6 +8,25 @@ namespace DBus
public class Message
{
+ private static Stack stack = new Stack ();
+
+ static public Message Current {
+ get
+ {
+ return stack.Count > 0 ? (Message) stack.Peek () : null;
+ }
+ }
+
+ static internal void Push (Message message)
+ {
+ stack.Push (message);
+ }
+
+ static internal void Pop ()
+ {
+ stack.Pop ();
+ }
+
/// <summary>
/// A pointer to the underlying Message structure
@@ -294,6 +313,22 @@ namespace DBus
}
}
+ public string Sender
+ {
+ get
+ {
+ return Marshal.PtrToStringAnsi(dbus_message_get_sender(RawMessage));
+ }
+ }
+
+ public string Destination
+ {
+ get
+ {
+ return Marshal.PtrToStringAnsi(dbus_message_get_destination(RawMessage));
+ }
+ }
+
protected int Slot
{
get
@@ -373,5 +408,8 @@ namespace DBus
[DllImport("dbus-1")]
private extern static IntPtr dbus_message_get_destination(IntPtr rawMessage);
+
+ [DllImport("dbus-1")]
+ private extern static IntPtr dbus_message_get_sender(IntPtr rawMessage);
}
}