DBusConnection.Register (gb.dbus)

Sub Register ( Object As DBusObject, Path As String [ , Interface As String[] ] )

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