DBusConnection.Register (gb.dbus)
Esporta un oggetto
DBusObject sul bus.
-
Object è l'oggetto DBus da esportare.
-
Percorso è il percorso D-Bus in cui verrà collegato l'oggetto.
-
Interfaces consente di specificare il nome di ulteriori interfacce implementate dall'oggetto DBus.
Che cosa viene esportato?
-
Metodi pubblici il cui nome non ha caratteri di sottolineatura all'interno e i cui argomenti e tipo di ritorno possono essere convertiti in un tipo di dati D-Bus.
-
Proprietà pubbliche il cui nome non ha caratteri di sottolineatura all'interno e il cui tipo può essere convertito in un tipo di dati D-Bus.
Non appena si registra almeno un oggetto, l'applicazione viene visualizzata sul bus
con il nome
org.gambas.<application name>
.
Tutti i metodi e le proprietà il cui nome inizia con un nome di interfaccia specificato nell'argomento
Interfaces, dove i punti sono sostituiti
da underscore e seguiti da un trattino di sottolineatura extra, vengono esportati sotto tale interfaccia.
Tutti gli altri metodi e proprietà vengono esportati tramite un'interfaccia denominata
org.gambas.<application name>.<class name>
. Se non si specifica l'argomento
Interfaces, tutti i metodi sono proprietà esportate indifferentemente attraverso tale interfaccia.
Esempio
Supponiamo di avere un progetto denominato
MyProject
che desidera esportare una classe denominata
MyDBusClass
come oggetto univoco.
Ecco il codice sorgente
MyDBusClass
:
' MyDBusClass class
Inherits DBusObject
Create Static
Public Sub Compute(Value1 As Float, Value2 As Float) As Float
Return Value1 + Value2
End
Ecco il metodo di avvio del progetto che registrerà l'oggetto
DBus:
' Main module
Public Sub Main
DBus.Session.Register(MyDBusClass, "/MyDBusClass")
End
Quindi, sarai in grado di eseguire la classe esportata da un'altra applicazione in questo modo:
Print DBus["org.gambas.MyProject"]["/MyDBusClass"].Compute(3, 4)
7