The (static) class DBusObject (gb.dbus) is the parent class for all objects that you can export to the D-Bus.
Any method you define in a Gambas D-Bus object inherits from the DBusObject class as shown in the source code of TService.class:
' Gambas class file Inherits DBusObject Create Static Public Function GetTemperature(Trigger As String) As RValue … End
The source code in FMain.class, for example, declares a (Gambas) D-Bus object of type TService and registers it on the Session D-Bus. If the server is terminated, then the D-Bus object is unregistered from the D-Bus, which made the TService object available for use by all d-bus-enabled applications.
' Gambas class file
Public hDBusObject As TService
Public Sub Form_Open()
FMain.Resizable = False
FMain.Caption = ("The data server is activated")
DBus.Unique = True
hDBusObject = New TService
Try DBus.Session.Register(hDBusObject, "/TService")
If Error Then
Message.Error("An instance of " & Application.Name & " already exists.")
FMain.Close()
Endif
End
Public Sub Form_Close()
If DBus.IsRegistered(hDBusObject) Then DBus.Session.Unregister(hDBusObject)
FMain.Close()
End
Two commented server projects can be found in chapters 24.9.8.1 Project1 and 24.9.8.2 Project2.