Die Klasse DBusApplication (gb.dbus) repräsentiert eine Anwendung, die am D-Bus registriert ist. Diese Klasse können Sie erzeugen. Sie verhält sich wie Array, das Sie nur lesen können.
Die Klasse DBusApplication verfügt über die folgenden Eigenschaften:
Eigenschaft | Datentyp | Beschreibung |
---|---|---|
Connection | DBusConnection | Objekt vom Typ DBusConnection, dessen Anwendung mit dem D-Bus verbunden ist. |
Index | Integer | Index im (internen) Anwendungscache. |
Name | String | Name der Anwendung auf dem D-Bus (DBus.Name). |
Tabelle 24.9.3.1.1 : Eigenschaften der Klasse DBusApplication
Die Klasse DBusApplication besitzt diese drei Methoden:
Methode | Beschreibung |
---|---|
Register ( Object As DBusObject, Path As String [ , Interfaces As String[] ] ) | Registriert ein D-Bus-Object am D-Bus – seit Gambas 3.9. Für die Parameter gilt: Object ist das zu registrierende D-Bus-Objekt, Path ist der D-Bus-Pfad für das D-Bus-Objekt und Interface (optional) ermöglicht die Angabe der Namen von zusätzlichen Schnittstellen, wenn diese für das verwendete D-Bus-Objekt existieren. |
Unregister ( Object As DBusObject ) | Meldet das im Parameter genannte D-Bus-Objekt vom D-Bus ab. |
Raise ( Object As DBusObject, Signal As String [ , Arguments As Variant[] ] ) | Löst ein D-Bus-Signal aus. Für die Parameter gilt: Object ist das D-Bus-Objekt, welches das Signal sendet, Signal ist der Name des gesendeten Signals und Arguments (optional) repräsentiert die Argumente des Signals vom Daten-Typ Variant-Array. |
Tabelle 24.9.3.2.1 : Methoden der Klasse DBusApplication
Mit New DBusApplication(Parameterliste) können Sie ein DBusApplication-Objekt erzeugen:
Dim hDBusApplication As DBusApplication hDBusApplication = New DBusApplication ( Connection As DBusConnection, ApplicationName As String )
Das erzeugte Objekt repräsentiert eine Anwendung, die mit dem Session-Bus oder dem System-Bus verbunden ist. Für die beiden Parameter gilt:
In gleicher Weise können Sie alternativ auch DBus[ ApplicationName ] als Array einsetzen.
Die Klasse DBusApplication verhält sich wie ein Nur-Lesen-Array. Diesen Sachverhalt nutzen die beiden folgenden Quelltexte – der erste nur formal:
Dim hDBusApplication As DBusApplication Dim hDBusProxy As DBusProxy hDBusProxy = hDBusApplication [ ObjectPath As String [ , Interface As String ] ]
Zurückgegeben wird mit hDBusProxy ein Proxy zu einem (existierenden) D-Bus-Objekt, das im ersten Parameter angegeben wird.
Ist das Argument für den optionalen Parameter Interface nicht angegeben, so haben Sie Zugriff auf jede Methode und alle Eigenschaften des (exportierten) Objekts. Sonst haben Sie nur Zugriff auf Methoden und Eigenschaften des angegebenen Interfaces – wie im folgenden Beispiel:
Dim hDBusApplication As DBusApplication Dim hDBusProxy As DBusProxy Dim sDBusName, sDBusObjectPath, sDBusInterface As String Dim hConnection As DBusConnection hConnection = DBus.Session sDBusName = "org.freedesktop.Notifications" sDBusObjectPath = "/org/freedesktop/Notifications" sDBusInterface = "org.freedesktop.Notifications" hDBusApplication = New DBusApplication(hConnection, sDBusName) hDBusProxy = New DBusProxy(hDBusApplication, sDBusObjectPath, sDBusInterface)
Im Sinne einer guten Daten-Kapselung ist die Erzeugung eines Interfaces auf der Seite der Anwendung, die das Objekt zum D-Bus exportiert, stets von Vorteil.