Die Klasse DBusObserver (gb.dbus) ermöglicht es Ihnen, jede über den D-Bus gesendete Nachricht abzufangen und auszuwerten.
Die Klasse DBusObserver hat zwei Eigenschaften, zwei Methoden und ein Ereignis.
Die Klasse DBusObserver verfügt über diese beiden Eigenschaften:
Eigenschaft | Datentyp | Beschreibung |
---|---|---|
Enabled | Boolean | Der Standard-Wert ist True. Das bedeutet, dass ein D-Bus-Observer stets eingeschaltet ist, wenn Sie ein Programm starten, dass diese Klasse nutzt. Sie können den Wert lesen als auch festlegen. |
Message | DBusObserver.Message | Message vom Typ .DBusObserver.Message enthält die Nachricht, die vom Observer empfangen wurde. |
Tabelle 24.9.5.0.1 : Eigenschaften der Klasse DBusObserver
Die virtuelle Klasse .DbusObserver.Message, die nicht erzeugt werden kann, repräsentiert eine Nachricht, die vom DBusObserver-Objekt empfangen wurde. Sie hat die folgenden Eigenschaften, die nur ausgelesen werden können und bis auf 'Arguments' als Meta-Daten zu verstehen sind:
Eigenschaft | Datentyp | Beschreibung |
---|---|---|
Arguments | Variant[ ] | Ein Variant-Array, das alle Argumente einer Nachricht enthält. Es wird NULL zurückgegeben, wenn die empfangene Nachricht keine Argumente besitzt. |
Destination | String | Nachrichten-Ziel. |
Interface | String | Nachrichten-Interface. |
Member | String | Nachrichten-Member (Methode oder Signal). |
Object | String | Pfad des Nachrichten-Objekts. |
Sender | String | Nachrichten-Sender. |
Serial | Integer | Nachrichten-Serien-Nummer. |
Type | Integer | Nachrichten-Typ, der einen der folgenden Werte – repräsentiert durch eine der folgenden Konstanten – annehmen kann: DBus.Method (1), DBus.Reply (2), DBus.Error (3) oder DBus.Signal (4). |
Tabelle 24.9.5.0.2 : Eigenschaften der virtuellen Klasse .DBusObserver.Message
Die Klasse DBusObserver hat nur diese beiden Methoden:
Methode | Beschreibung |
---|---|
Error ( [ Error As String, Type As String ] ) | Es wird als Antwort auf eine Nachricht mit einer Fehlermeldung reagiert. Für die beiden Parameter gilt: Error ist die Fehlermeldung. Type ist der Fehlertyp. Standardmäßig ist es „org.freedesktop.DBus.Error.Failed“. Sehen Sie sich in der D-Bus-Dokumentation die Liste der erlaubten Fehlertypen an. |
Reply ( [ Signature As String, Arguments As Array ] ) | Antwort auf den Aufruf der Methode Nachricht. Für die beiden Parameter gilt: Signature ist die Signatur der Antwort. Es sollte die Kennzeichnung der Ausgabeargumente des Methodenaufrufs sein. Arguments ist ein Array mit den zurückgegebenen Antwort-Werten. |
Tabelle 24.9.5.0.3 : Methoden der Klasse DBusObserver
Die Klasse DBusObserver verfügt nur das Ereignis Message(). Dieses Ereignis wird ausgelöst, wenn der DBus-Observer eine Nachricht von einem bestimmten Objekt empfängt. Die empfangene Nachricht wird in der Message-Eigenschaft vom Typ .DBusObserver.Message gespeichert.
Diese Klasse können Sie erzeugen. Sie sollten diese Klasse dann einsetzen, wenn Sie zusätzliche Informationen – wie zum Beispiel die oben erwähnten Meta-Daten – zu den beobachteten Nachrichten benötigen. Verwenden Sie sonst die Klasse DBusSignal.
Im folgenden Beispiel erfahren Sie, wie Sie mit New DBusObserver( parameterliste ) formal einen neuen DBus-Observer erzeugen können:
Dim hDBusObserver As DBusObserver hDBusObserver = New DBusObserver ( Connection As DBusConnection, Type As Integer [ , Object As String, Member As String, Interface As String, Destination As String ] ) As "ObserverEventName"
Der o.a. Quelltext erzeugt einen neuen D-Bus-Observer, um Nachrichten auf dem angegebenen DBus abzufangen. Für die Parameter gilt:
So erzeugen Sie einen neuen Observer, um Signale des Objektes abzufangen, dessen Objekt-Pfad mit /org/gtk/Private/RemoteVolumeMonitor angegeben ist:
Dim hDBusObserver As DBusObserver hDBusObserver = New DBusObserver(DBus.Session, DBus.Signal, "/org/gtk/Private/RemoteVolumeMonitor", "VolumeAdded", "org.gtk.Private.RemoteVolumeMonitor", "*") As "hDBusObserver"