Class DBusObjectManagerServer

All Implemented Interfaces:
PointerInterface

public class DBusObjectManagerServer extends Object
#GDBusObjectManagerServer is used to export #GDBusObject instances using
the standardized
[org.freedesktop.DBus.ObjectManager](http://dbus.freedesktop.org/doc/dbus-specification.html#standard-interfaces-objectmanager)
interface. For example, remote D-Bus clients can get all objects
and properties in a single call. Additionally, any change in the
object hierarchy is broadcast using signals. This means that D-Bus
clients can keep caches up to date by only listening to D-Bus
signals.

The recommended path to export an object manager at is the path form of the
well-known name of a D-Bus service, or below. For example, if a D-Bus service
is available at the well-known name `net.example.ExampleService1`, the object
manager should typically be exported at `/net/example/ExampleService1`, or
below (to allow for multiple object managers in a service).

It is supported, but not recommended, to export an object manager at the root
path, `/`.

See #GDBusObjectManagerClient for the client-side code that is
intended to be used with #GDBusObjectManagerServer or any D-Bus
object implementing the org.freedesktop.DBus.ObjectManager
interface.

https://docs.gtk.org/gio/class.DBusObjectManagerServer.html

  • Constructor Details

    • DBusObjectManagerServer

      public DBusObjectManagerServer(PointerContainer pointer)
    • DBusObjectManagerServer

      public DBusObjectManagerServer(@Nonnull Str object_path)
      Creates a new #GDBusObjectManagerServer object.

      The returned server isn't yet exported on any connection. To do so,
      use g_dbus_object_manager_server_set_connection(). Normally you
      want to export all of your objects before doing so to avoid
      [InterfacesAdded](http://dbus.freedesktop.org/doc/dbus-specification.html#standard-interfaces-objectmanager)
      signals being emitted.
      Parameters:
      object_path - The object path to export the manager object at.
    • DBusObjectManagerServer

      public DBusObjectManagerServer(String object_path)
      Creates a new #GDBusObjectManagerServer object.

      The returned server isn't yet exported on any connection. To do so,
      use g_dbus_object_manager_server_set_connection(). Normally you
      want to export all of your objects before doing so to avoid
      [InterfacesAdded](http://dbus.freedesktop.org/doc/dbus-specification.html#standard-interfaces-objectmanager)
      signals being emitted.
      Parameters:
      object_path - The object path to export the manager object at.
  • Method Details

    • getClassHandler

      public static ClassHandler getClassHandler()
    • export

      public void export(@Nonnull DBusObjectSkeleton object)
      Exports @object on @manager.

      If there is already a #GDBusObject exported at the object path,
      then the old object is removed.

      The object path for @object must be in the hierarchy rooted by the
      object path for @manager.

      Note that @manager will take a reference on @object for as long as
      it is exported.
      Parameters:
      object - A #GDBusObjectSkeleton.
    • exportUniquely

      public void exportUniquely(@Nonnull DBusObjectSkeleton object)
      Like g_dbus_object_manager_server_export() but appends a string of
      the form _N (with N being a natural number) to @object's object path
      if an object with the given path already exists. As such, the
      #GDBusObjectProxy:g-object-path property of @object may be modified.
      Parameters:
      object - An object.
    • getConnection

      public DBusConnection getConnection()
      Gets the #GDBusConnection used by @manager.
      Returns:
      A #GDBusConnection object or %NULL if @manager isn't exported on a connection. The returned object should be freed with g_object_unref().
    • isExported

      public boolean isExported(@Nonnull DBusObjectSkeleton object)
      Returns whether @object is currently exported on @manager.
      Parameters:
      object - An object.
      Returns:
      %TRUE if @object is exported
    • setConnection

      public void setConnection(@Nullable DBusConnection connection)
      Exports all objects managed by @manager on @connection. If
      @connection is %NULL, stops exporting objects.
      Parameters:
      connection - A #GDBusConnection or %NULL.
    • unexport

      public boolean unexport(@Nonnull Str object_path)
      If @manager has an object at @path, removes the object. Otherwise
      does nothing.

      Note that @object_path must be in the hierarchy rooted by the
      object path for @manager.
      Parameters:
      object_path - An object path.
      Returns:
      %TRUE if object at @object_path was removed, %FALSE otherwise.
    • unexport

      public boolean unexport(String object_path)
      If @manager has an object at @path, removes the object. Otherwise
      does nothing.

      Note that @object_path must be in the hierarchy rooted by the
      object path for @manager.
      Parameters:
      object_path - An object path.
      Returns:
      %TRUE if object at @object_path was removed, %FALSE otherwise.
    • asDBusObjectManager

      public DBusObjectManager asDBusObjectManager()
      Implements interface DBusObjectManager. Call this to get access to interface functions.
      Returns:
      DBusObjectManager
    • getTypeID

      public static long getTypeID()
    • getParentTypeID

      public static long getParentTypeID()
    • getTypeSize

      public static TypeSystem.TypeSize getTypeSize()
    • getParentTypeSize

      public static TypeSystem.TypeSize getParentTypeSize()
    • getInstanceSize

      public static int getInstanceSize()