Klasse DBusObjectManagerClient

Alle implementierten Schnittstellen:
PointerInterface

public class DBusObjectManagerClient extends PropertyHolder
`GDBusObjectManagerClient` is used to create, monitor and delete object
proxies for remote objects exported by a [class@Gio.DBusObjectManagerServer]
(or any code implementing the
[org.freedesktop.DBus.ObjectManager](http://dbus.freedesktop.org/doc/dbus-specification.html#standard-interfaces-objectmanager)
interface).

Once an instance of this type has been created, you can connect to
the [signal@Gio.DBusObjectManager::object-added] and
[signal@Gio.DBusObjectManager::object-removed signals] and inspect the
[class@Gio.DBusObjectProxy] objects returned by
[method@Gio.DBusObjectManager.get_objects].

If the name for a `GDBusObjectManagerClient` is not owned by anyone at
object construction time, the default behavior is to request the
message bus to launch an owner for the name. This behavior can be
disabled using the `G_DBUS_OBJECT_MANAGER_CLIENT_FLAGS_DO_NOT_AUTO_START`
flag. It’s also worth noting that this only works if the name of
interest is activatable in the first place. E.g. in some cases it
is not possible to launch an owner for the requested name. In this
case, `GDBusObjectManagerClient` object construction still succeeds but
there will be no object proxies
(e.g. [method@Gio.DBusObjectManager.get_objects] returns the empty list) and
the [property@Gio.DBusObjectManagerClient:name-owner] property is `NULL`.

The owner of the requested name can come and go (for example
consider a system service being restarted) – `GDBusObjectManagerClient`
handles this case too; simply connect to the [signal@GObject.Object::notify]
signal to watch for changes on the
[property@Gio.DBusObjectManagerClient:name-owner] property. When the name
owner vanishes, the behavior is that
[property@Gio.DBusObjectManagerClient:name-owner] is set to `NULL` (this
includes emission of the [signal@GObject.Object::notify] signal) and then
[signal@Gio.DBusObjectManager::object-removed] signals are synthesized
for all currently existing object proxies. Since
[property@Gio.DBusObjectManagerClient:name-owner] is `NULL` when this
happens, you can use this information to disambiguate a synthesized signal
from a genuine signal caused by object removal on the remote
[iface@Gio.DBusObjectManager]. Similarly, when a new name owner appears,
[signal@Gio.DBusObjectManager::object-added] signals are synthesized
while [property@Gio.DBusObjectManagerClient:name-owner] is still `NULL`. Only
when all object proxies have been added, the
[property@Gio.DBusObjectManagerClient:name-owner] is set to the new name
owner (this includes emission of the [signal@GObject.Object::notify] signal).
Furthermore, you are guaranteed that
[property@Gio.DBusObjectManagerClient:name-owner] will alternate between a
name owner (e.g. `:1.42`) and `NULL` even in the case where
the name of interest is atomically replaced

Ultimately, `GDBusObjectManagerClient` is used to obtain
[class@Gio.DBusProxy] instances. All signals (including the
`org.freedesktop.DBus.Properties::PropertiesChanged` signal)
delivered to [class@Gio.DBusProxy] instances are guaranteed to originate
from the name owner. This guarantee along with the behavior
described above, means that certain race conditions including the
“half the proxy is from the old owner and the other half is from
the new owner” problem cannot happen.

To avoid having the application connect to signals on the returned
[class@Gio.DBusObjectProxy] and [class@Gio.DBusProxy] objects, the
[signal@Gio.DBusObject::interface-added],
[signal@Gio.DBusObject::interface-removed],
[signal@Gio.DBusProxy::g-properties-changed] and
[signal@Gio.DBusProxy::g-signal] signals
are also emitted on the `GDBusObjectManagerClient` instance managing these
objects. The signals emitted are
[signal@Gio.DBusObjectManager::interface-added],
[signal@Gio.DBusObjectManager::interface-removed],
[signal@Gio.DBusObjectManagerClient::interface-proxy-properties-changed] and
[signal@Gio.DBusObjectManagerClient::interface-proxy-signal].

Note that all callbacks and signals are emitted in the
thread-default main context (see
[method@GLib.MainContext.push_thread_default]) that the
`GDBusObjectManagerClient` object was constructed in. Additionally, the
[class@Gio.DBusObjectProxy] and [class@Gio.DBusProxy] objects
originating from the `GDBusObjectManagerClient` object will be created in
the same context and, consequently, will deliver signals in the
same main loop.

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

  • Felddetails

    • SIGNAL_ON_INTERFACE_PROXY_SIGNAL

      public static final String SIGNAL_ON_INTERFACE_PROXY_SIGNAL
      Siehe auch:
  • Konstruktordetails

    • DBusObjectManagerClient

      public DBusObjectManagerClient(PointerContainer pointer)
  • Methodendetails

    • getClassHandler

      public static ClassHandler getClassHandler()
    • newFinishDBusObjectManagerClient

      public static DBusObjectManagerClient newFinishDBusObjectManagerClient(@Nonnull AsyncResult res) throws AllocationError
      Finishes an operation started with g_dbus_object_manager_client_new().
      Parameter:
      res - A #GAsyncResult obtained from the #GAsyncReadyCallback passed to g_dbus_object_manager_client_new().
      Gibt zurück:
      A #GDBusObjectManagerClient object or %NULL if @error is set. Free with g_object_unref().
      Löst aus:
      AllocationError
    • newForBusFinishDBusObjectManagerClient

      public static DBusObjectManagerClient newForBusFinishDBusObjectManagerClient(@Nonnull AsyncResult res) throws AllocationError
      Finishes an operation started with g_dbus_object_manager_client_new_for_bus().
      Parameter:
      res - A #GAsyncResult obtained from the #GAsyncReadyCallback passed to g_dbus_object_manager_client_new_for_bus().
      Gibt zurück:
      A #GDBusObjectManagerClient object or %NULL if @error is set. Free with g_object_unref().
      Löst aus:
      AllocationError
    • newForBusSyncDBusObjectManagerClient

      public static DBusObjectManagerClient newForBusSyncDBusObjectManagerClient(int bus_type, int flags, @Nonnull Str name, @Nonnull Str object_path, DBusObjectManagerClient.OnDBusProxyTypeFunc get_proxy_type_func, @Nullable Pointer get_proxy_type_user_data, DBusObjectManagerClient.OnDestroyNotify get_proxy_type_destroy_notify, @Nullable Cancellable cancellable) throws AllocationError
      Like g_dbus_object_manager_client_new_sync() but takes a #GBusType instead
      of a #GDBusConnection.

      This is a synchronous failable constructor - the calling thread is
      blocked until a reply is received. See g_dbus_object_manager_client_new_for_bus()
      for the asynchronous version.
      Parameter:
      bus_type - A #GBusType.
      flags - Zero or more flags from the #GDBusObjectManagerClientFlags enumeration.
      name - The owner of the control object (unique or well-known name).
      object_path - The object path of the control object.
      get_proxy_type_func - A #GDBusProxyTypeFunc function or %NULL to always construct #GDBusProxy proxies.
      get_proxy_type_user_data - User data to pass to @get_proxy_type_func.
      get_proxy_type_destroy_notify - Free function for @get_proxy_type_user_data or %NULL.
      cancellable - A #GCancellable or %NULL
      Gibt zurück:
      A #GDBusObjectManagerClient object or %NULL if @error is set. Free with g_object_unref().
      Löst aus:
      AllocationError
    • newForBusSyncDBusObjectManagerClient

      public static DBusObjectManagerClient newForBusSyncDBusObjectManagerClient(int bus_type, int flags, String name, String object_path, DBusObjectManagerClient.OnDBusProxyTypeFunc get_proxy_type_func, @Nullable Pointer get_proxy_type_user_data, DBusObjectManagerClient.OnDestroyNotify get_proxy_type_destroy_notify, @Nullable Cancellable cancellable) throws AllocationError
      Like g_dbus_object_manager_client_new_sync() but takes a #GBusType instead
      of a #GDBusConnection.

      This is a synchronous failable constructor - the calling thread is
      blocked until a reply is received. See g_dbus_object_manager_client_new_for_bus()
      for the asynchronous version.
      Parameter:
      bus_type - A #GBusType.
      flags - Zero or more flags from the #GDBusObjectManagerClientFlags enumeration.
      name - The owner of the control object (unique or well-known name).
      object_path - The object path of the control object.
      get_proxy_type_func - A #GDBusProxyTypeFunc function or %NULL to always construct #GDBusProxy proxies.
      get_proxy_type_user_data - User data to pass to @get_proxy_type_func.
      get_proxy_type_destroy_notify - Free function for @get_proxy_type_user_data or %NULL.
      cancellable - A #GCancellable or %NULL
      Gibt zurück:
      A #GDBusObjectManagerClient object or %NULL if @error is set. Free with g_object_unref().
      Löst aus:
      AllocationError
    • newSyncDBusObjectManagerClient

      public static DBusObjectManagerClient newSyncDBusObjectManagerClient(@Nonnull DBusConnection connection, int flags, @Nullable Str name, @Nonnull Str object_path, DBusObjectManagerClient.OnDBusProxyTypeFunc get_proxy_type_func, @Nullable Pointer get_proxy_type_user_data, DBusObjectManagerClient.OnDestroyNotify get_proxy_type_destroy_notify, @Nullable Cancellable cancellable) throws AllocationError
      Creates a new #GDBusObjectManagerClient object.

      This is a synchronous failable constructor - the calling thread is
      blocked until a reply is received. See g_dbus_object_manager_client_new()
      for the asynchronous version.
      Parameter:
      connection - A #GDBusConnection.
      flags - Zero or more flags from the #GDBusObjectManagerClientFlags enumeration.
      name - The owner of the control object (unique or well-known name), or %NULL when not using a message bus connection.
      object_path - The object path of the control object.
      get_proxy_type_func - A #GDBusProxyTypeFunc function or %NULL to always construct #GDBusProxy proxies.
      get_proxy_type_user_data - User data to pass to @get_proxy_type_func.
      get_proxy_type_destroy_notify - Free function for @get_proxy_type_user_data or %NULL.
      cancellable - A #GCancellable or %NULL
      Gibt zurück:
      A #GDBusObjectManagerClient object or %NULL if @error is set. Free with g_object_unref().
      Löst aus:
      AllocationError
    • newSyncDBusObjectManagerClient

      public static DBusObjectManagerClient newSyncDBusObjectManagerClient(@Nonnull DBusConnection connection, int flags, String name, String object_path, DBusObjectManagerClient.OnDBusProxyTypeFunc get_proxy_type_func, @Nullable Pointer get_proxy_type_user_data, DBusObjectManagerClient.OnDestroyNotify get_proxy_type_destroy_notify, @Nullable Cancellable cancellable) throws AllocationError
      Creates a new #GDBusObjectManagerClient object.

      This is a synchronous failable constructor - the calling thread is
      blocked until a reply is received. See g_dbus_object_manager_client_new()
      for the asynchronous version.
      Parameter:
      connection - A #GDBusConnection.
      flags - Zero or more flags from the #GDBusObjectManagerClientFlags enumeration.
      name - The owner of the control object (unique or well-known name), or %NULL when not using a message bus connection.
      object_path - The object path of the control object.
      get_proxy_type_func - A #GDBusProxyTypeFunc function or %NULL to always construct #GDBusProxy proxies.
      get_proxy_type_user_data - User data to pass to @get_proxy_type_func.
      get_proxy_type_destroy_notify - Free function for @get_proxy_type_user_data or %NULL.
      cancellable - A #GCancellable or %NULL
      Gibt zurück:
      A #GDBusObjectManagerClient object or %NULL if @error is set. Free with g_object_unref().
      Löst aus:
      AllocationError
    • getConnection

      public DBusConnection getConnection()
      Gets the #GDBusConnection used by @manager.
      Gibt zurück:
      A #GDBusConnection object. Do not free, the object belongs to @manager.
    • getFlags

      public int getFlags()
      Gets the flags that @manager was constructed with.
      Gibt zurück:
      Zero of more flags from the #GDBusObjectManagerClientFlags enumeration.
    • getName

      public Str getName()
      Gets the name that @manager is for, or %NULL if not a message bus
      connection.
      Gibt zurück:
      A unique or well-known name. Do not free, the string belongs to @manager.
    • getNameOwner

      public Str getNameOwner()
      The unique name that owns the name that @manager is for or %NULL if
      no-one currently owns that name. You can connect to the
      #GObject::notify signal to track changes to the
      #GDBusObjectManagerClient:name-owner property.
      Gibt zurück:
      The name owner or %NULL if no name owner exists. Free with g_free().
    • onInterfaceProxySignal

      public SignalHandler onInterfaceProxySignal(DBusObjectManagerClient.OnInterfaceProxySignal signal)
      Parameter:
      signal - callback function (lambda).
      Gibt zurück:
      SignalHandler. Can be used to disconnect signal and to release callback function.
    • _new

      public static void _new(@Nonnull DBusConnection connection, int flags, @Nonnull Str name, @Nonnull Str object_path, DBusObjectManagerClient.OnDBusProxyTypeFunc get_proxy_type_func, @Nullable Pointer get_proxy_type_user_data, DBusObjectManagerClient.OnDestroyNotify get_proxy_type_destroy_notify, @Nullable Cancellable cancellable, DBusObjectManagerClient.OnAsyncReadyCallback callback, @Nullable Pointer user_data)
      Asynchronously creates a new #GDBusObjectManagerClient object.

      This is an asynchronous failable constructor. When the result is
      ready, @callback will be invoked in the thread-default main context
      (see [method@GLib.MainContext.push_thread_default])
      of the thread you are calling this method from. You can then call
      g_dbus_object_manager_client_new_finish() to get the result. See
      g_dbus_object_manager_client_new_sync() for the synchronous version.
      Parameter:
      connection - A #GDBusConnection.
      flags - Zero or more flags from the #GDBusObjectManagerClientFlags enumeration.
      name - The owner of the control object (unique or well-known name).
      object_path - The object path of the control object.
      get_proxy_type_func - A #GDBusProxyTypeFunc function or %NULL to always construct #GDBusProxy proxies.
      get_proxy_type_user_data - User data to pass to @get_proxy_type_func.
      get_proxy_type_destroy_notify - Free function for @get_proxy_type_user_data or %NULL.
      cancellable - A #GCancellable or %NULL
      callback - A #GAsyncReadyCallback to call when the request is satisfied.
      user_data - The data to pass to @callback.
    • newForBus

      public static void newForBus(int bus_type, int flags, @Nonnull Str name, @Nonnull Str object_path, DBusObjectManagerClient.OnDBusProxyTypeFunc get_proxy_type_func, @Nullable Pointer get_proxy_type_user_data, DBusObjectManagerClient.OnDestroyNotify get_proxy_type_destroy_notify, @Nullable Cancellable cancellable, DBusObjectManagerClient.OnAsyncReadyCallback callback, @Nullable Pointer user_data)
      Like g_dbus_object_manager_client_new() but takes a #GBusType instead of a
      #GDBusConnection.

      This is an asynchronous failable constructor. When the result is
      ready, @callback will be invoked in the thread-default main context
      (see [method@GLib.MainContext.push_thread_default])
      of the thread you are calling this method from. You can
      then call g_dbus_object_manager_client_new_for_bus_finish() to get the result. See
      g_dbus_object_manager_client_new_for_bus_sync() for the synchronous version.
      Parameter:
      bus_type - A #GBusType.
      flags - Zero or more flags from the #GDBusObjectManagerClientFlags enumeration.
      name - The owner of the control object (unique or well-known name).
      object_path - The object path of the control object.
      get_proxy_type_func - A #GDBusProxyTypeFunc function or %NULL to always construct #GDBusProxy proxies.
      get_proxy_type_user_data - User data to pass to @get_proxy_type_func.
      get_proxy_type_destroy_notify - Free function for @get_proxy_type_user_data or %NULL.
      cancellable - A #GCancellable or %NULL
      callback - A #GAsyncReadyCallback to call when the request is satisfied.
      user_data - The data to pass to @callback.
    • asAsyncInitable

      public AsyncInitable asAsyncInitable()
      Implements interface AsyncInitable. Call this to get access to interface functions.
      Gibt zurück:
      AsyncInitable
    • asDBusObjectManager

      public DBusObjectManager asDBusObjectManager()
      Implements interface DBusObjectManager. Call this to get access to interface functions.
      Gibt zurück:
      DBusObjectManager
    • asInitable

      public Initable asInitable()
      Implements interface Initable. Call this to get access to interface functions.
      Gibt zurück:
      Initable
    • 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()