Gio.DBusObjectManagerClient

g GObject.GInterface GObject.GInterface Gio.AsyncInitable Gio.AsyncInitable GObject.GInterface->Gio.AsyncInitable Gio.DBusObjectManager Gio.DBusObjectManager GObject.GInterface->Gio.DBusObjectManager Gio.Initable Gio.Initable GObject.GInterface->Gio.Initable GObject.Object GObject.Object Gio.DBusObjectManagerClient Gio.DBusObjectManagerClient GObject.Object->Gio.DBusObjectManagerClient Gio.AsyncInitable->Gio.DBusObjectManagerClient Gio.DBusObjectManager->Gio.DBusObjectManagerClient Gio.Initable->Gio.DBusObjectManagerClient

Subclasses:

None

Methods

Inherited:

GObject.Object (37), Gio.AsyncInitable (4), Gio.DBusObjectManager (4), Gio.Initable (2)

Structs:

GObject.ObjectClass (5)

class

new (connection, flags, name, object_path, get_proxy_type_func, get_proxy_type_user_data, cancellable, callback, *user_data)

class

new_finish (res)

class

new_for_bus (bus_type, flags, name, object_path, get_proxy_type_func, get_proxy_type_user_data, cancellable, callback, *user_data)

class

new_for_bus_finish (res)

class

new_for_bus_sync (bus_type, flags, name, object_path, get_proxy_type_func, get_proxy_type_user_data, cancellable)

class

new_sync (connection, flags, name, object_path, get_proxy_type_func, get_proxy_type_user_data, cancellable)

get_connection ()

get_flags ()

get_name ()

get_name_owner ()

Virtual Methods

Inherited:

GObject.Object (7), Gio.AsyncInitable (2), Gio.DBusObjectManager (8), Gio.Initable (1)

do_interface_proxy_properties_changed (object_proxy, interface_proxy, changed_properties, invalidated_properties)

do_interface_proxy_signal (object_proxy, interface_proxy, sender_name, signal_name, parameters)

Properties

Name

Type

Flags

Short Description

bus-type

Gio.BusType

w/co

The bus to connect to, if any

connection

Gio.DBusConnection

r/w/co

The connection to use

flags

Gio.DBusObjectManagerClientFlags

r/w/co

Flags for the proxy manager

get-proxy-type-destroy-notify

int

r/w/co

The Gio.DBusProxyTypeFunc user data free function

get-proxy-type-func

int

r/w/co

The Gio.DBusProxyTypeFunc pointer to use

get-proxy-type-user-data

int

r/w/co

The Gio.DBusProxyTypeFunc user_data

name

str

r/w/co

Name that the manager is for

name-owner

str

r

The owner of the name we are watching

object-path

str

r/w/co

The object path of the control object

Signals

Inherited:

GObject.Object (1), Gio.DBusObjectManager (4)

Name

Short Description

interface-proxy-properties-changed

Emitted when one or more D-Bus properties on proxy changes.

interface-proxy-signal

Emitted when a D-Bus signal is received on interface_proxy.

Fields

Inherited:

GObject.Object (1), Gio.DBusObjectManager (4)

Name

Type

Access

Description

parent_instance

GObject.Object

r

Class Details

class Gio.DBusObjectManagerClient(**kwargs)
Bases:

GObject.Object, Gio.AsyncInitable, Gio.DBusObjectManager, Gio.Initable

Abstract:

No

Structure:

Gio.DBusObjectManagerClientClass

Gio.DBusObjectManagerClient is used to create, monitor and delete object proxies for remote objects exported by a Gio.DBusObjectManagerServer (or any code implementing the org.freedesktop.DBus.ObjectManager interface).

Once an instance of this type has been created, you can connect to the Gio.DBusObjectManager ::object-added and Gio.DBusObjectManager ::object-removed signals and inspect the Gio.DBusObjectProxy objects returned by Gio.DBusObjectManager.get_objects().

If the name for a Gio.DBusObjectManagerClient 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 Gio.DBusObjectManagerClientFlags.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, Gio.DBusObjectManagerClient object construction still succeeds but there will be no object proxies (e.g. Gio.DBusObjectManager.get_objects() returns the empty list) and the Gio.DBusObjectManagerClient :name-owner property is None.

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

Ultimately, Gio.DBusObjectManagerClient is used to obtain Gio.DBusProxy instances. All signals (including the org.freedesktop.DBus.Properties::PropertiesChanged signal) delivered to 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 Gio.DBusObjectProxy and Gio.DBusProxy objects, the Gio.DBusObject ::interface-added, Gio.DBusObject ::interface-removed, Gio.DBusProxy ::g-properties-changed and Gio.DBusProxy ::g-signal signals are also emitted on the Gio.DBusObjectManagerClient instance managing these objects. The signals emitted are Gio.DBusObjectManager ::interface-added, Gio.DBusObjectManager ::interface-removed, Gio.DBusObjectManagerClient ::interface-proxy-properties-changed and Gio.DBusObjectManagerClient ::interface-proxy-signal.

Note that all callbacks and signals are emitted in the thread-default main context that the Gio.DBusObjectManagerClient object was constructed in. Additionally, the Gio.DBusObjectProxy and Gio.DBusProxy objects originating from the Gio.DBusObjectManagerClient object will be created in the same context and, consequently, will deliver signals in the same main loop.

New in version 2.30.

classmethod new(connection, flags, name, object_path, get_proxy_type_func, get_proxy_type_user_data, cancellable, callback, *user_data)[source]
Parameters:

Asynchronously creates a new Gio.DBusObjectManagerClient object.

This is an asynchronous failable constructor. When the result is ready, callback will be invoked in the thread-default main context of the thread you are calling this method from. You can then call Gio.DBusObjectManagerClient.new_finish() to get the result. See Gio.DBusObjectManagerClient.new_sync() for the synchronous version.

New in version 2.30.

classmethod new_finish(res)[source]
Parameters:

res (Gio.AsyncResult) – A Gio.AsyncResult obtained from the Gio.AsyncReadyCallback passed to Gio.DBusObjectManagerClient.new().

Raises:

GLib.Error

Returns:

A Gio.DBusObjectManagerClient object or None if error is set. Free with GObject.Object.unref().

Return type:

Gio.DBusObjectManagerClient

Finishes an operation started with Gio.DBusObjectManagerClient.new().

New in version 2.30.

classmethod new_for_bus(bus_type, flags, name, object_path, get_proxy_type_func, get_proxy_type_user_data, cancellable, callback, *user_data)[source]
Parameters:

Like Gio.DBusObjectManagerClient.new() but takes a Gio.BusType instead of a Gio.DBusConnection.

This is an asynchronous failable constructor. When the result is ready, callback will be invoked in the thread-default main loop of the thread you are calling this method from. You can then call Gio.DBusObjectManagerClient.new_for_bus_finish() to get the result. See Gio.DBusObjectManagerClient.new_for_bus_sync() for the synchronous version.

New in version 2.30.

classmethod new_for_bus_finish(res)[source]
Parameters:

res (Gio.AsyncResult) – A Gio.AsyncResult obtained from the Gio.AsyncReadyCallback passed to Gio.DBusObjectManagerClient.new_for_bus().

Raises:

GLib.Error

Returns:

A Gio.DBusObjectManagerClient object or None if error is set. Free with GObject.Object.unref().

Return type:

Gio.DBusObjectManagerClient

Finishes an operation started with Gio.DBusObjectManagerClient.new_for_bus().

New in version 2.30.

classmethod new_for_bus_sync(bus_type, flags, name, object_path, get_proxy_type_func, get_proxy_type_user_data, cancellable)[source]
Parameters:
Raises:

GLib.Error

Returns:

A Gio.DBusObjectManagerClient object or None if error is set. Free with GObject.Object.unref().

Return type:

Gio.DBusObjectManagerClient

Like Gio.DBusObjectManagerClient.new_sync() but takes a Gio.BusType instead of a Gio.DBusConnection.

This is a synchronous failable constructor - the calling thread is blocked until a reply is received. See Gio.DBusObjectManagerClient.new_for_bus() for the asynchronous version.

New in version 2.30.

classmethod new_sync(connection, flags, name, object_path, get_proxy_type_func, get_proxy_type_user_data, cancellable)[source]
Parameters:
Raises:

GLib.Error

Returns:

A Gio.DBusObjectManagerClient object or None if error is set. Free with GObject.Object.unref().

Return type:

Gio.DBusObjectManagerClient

Creates a new Gio.DBusObjectManagerClient object.

This is a synchronous failable constructor - the calling thread is blocked until a reply is received. See Gio.DBusObjectManagerClient.new() for the asynchronous version.

New in version 2.30.

get_connection()[source]
Returns:

A Gio.DBusConnection object. Do not free, the object belongs to self.

Return type:

Gio.DBusConnection

Gets the Gio.DBusConnection used by self.

New in version 2.30.

get_flags()[source]
Returns:

Zero of more flags from the Gio.DBusObjectManagerClientFlags enumeration.

Return type:

Gio.DBusObjectManagerClientFlags

Gets the flags that self was constructed with.

New in version 2.30.

get_name()[source]
Returns:

A unique or well-known name. Do not free, the string belongs to self.

Return type:

str

Gets the name that self is for, or None if not a message bus connection.

New in version 2.30.

get_name_owner()[source]
Returns:

The name owner or None if no name owner exists. Free with GLib.free().

Return type:

str or None

The unique name that owns the name that self is for or None if no-one currently owns that name. You can connect to the GObject.Object ::notify signal to track changes to the Gio.DBusObjectManagerClient :name-owner property.

New in version 2.30.

do_interface_proxy_properties_changed(object_proxy, interface_proxy, changed_properties, invalidated_properties) virtual
Parameters:
do_interface_proxy_signal(object_proxy, interface_proxy, sender_name, signal_name, parameters) virtual
Parameters:

Signal Details

Gio.DBusObjectManagerClient.signals.interface_proxy_properties_changed(d_bus_object_manager_client, object_proxy, interface_proxy, changed_properties, invalidated_properties)
Signal Name:

interface-proxy-properties-changed

Flags:

RUN_LAST

Parameters:

Emitted when one or more D-Bus properties on proxy changes. The local cache has already been updated when this signal fires. Note that both changed_properties and invalidated_properties are guaranteed to never be None (either may be empty though).

This signal exists purely as a convenience to avoid having to connect signals to all interface proxies managed by manager.

This signal is emitted in the thread-default main context that manager was constructed in.

New in version 2.30.

Gio.DBusObjectManagerClient.signals.interface_proxy_signal(d_bus_object_manager_client, object_proxy, interface_proxy, sender_name, signal_name, parameters)
Signal Name:

interface-proxy-signal

Flags:

RUN_LAST

Parameters:

Emitted when a D-Bus signal is received on interface_proxy.

This signal exists purely as a convenience to avoid having to connect signals to all interface proxies managed by manager.

This signal is emitted in the thread-default main context that manager was constructed in.

New in version 2.30.

Property Details

Gio.DBusObjectManagerClient.props.bus_type
Name:

bus-type

Type:

Gio.BusType

Default Value:

Gio.BusType.NONE

Flags:

WRITABLE, CONSTRUCT_ONLY

If this property is not Gio.BusType.NONE, then Gio.DBusObjectManagerClient :connection must be None and will be set to the Gio.DBusConnection obtained by calling Gio.bus_get() with the value of this property.

New in version 2.30.

Gio.DBusObjectManagerClient.props.connection
Name:

connection

Type:

Gio.DBusConnection

Default Value:

None

Flags:

READABLE, WRITABLE, CONSTRUCT_ONLY

The Gio.DBusConnection to use.

New in version 2.30.

Gio.DBusObjectManagerClient.props.flags
Name:

flags

Type:

Gio.DBusObjectManagerClientFlags

Default Value:

Gio.DBusObjectManagerClientFlags.NONE

Flags:

READABLE, WRITABLE, CONSTRUCT_ONLY

Flags from the Gio.DBusObjectManagerClientFlags enumeration.

New in version 2.30.

Gio.DBusObjectManagerClient.props.get_proxy_type_destroy_notify
Name:

get-proxy-type-destroy-notify

Type:

int

Default Value:

None

Flags:

READABLE, WRITABLE, CONSTRUCT_ONLY

A GLib.DestroyNotify for the object user_data in Gio.DBusObjectManagerClient :get-proxy-type-user-data.

New in version 2.30.

Gio.DBusObjectManagerClient.props.get_proxy_type_func
Name:

get-proxy-type-func

Type:

int

Default Value:

None

Flags:

READABLE, WRITABLE, CONSTRUCT_ONLY

The Gio.DBusProxyTypeFunc to use when determining what GObject.GType to use for interface proxies or None.

New in version 2.30.

Gio.DBusObjectManagerClient.props.get_proxy_type_user_data
Name:

get-proxy-type-user-data

Type:

int

Default Value:

None

Flags:

READABLE, WRITABLE, CONSTRUCT_ONLY

The object user_data to pass to Gio.DBusObjectManagerClient :get-proxy-type-func.

New in version 2.30.

Gio.DBusObjectManagerClient.props.name
Name:

name

Type:

str

Default Value:

None

Flags:

READABLE, WRITABLE, CONSTRUCT_ONLY

The well-known name or unique name that the manager is for.

New in version 2.30.

Gio.DBusObjectManagerClient.props.name_owner
Name:

name-owner

Type:

str

Default Value:

None

Flags:

READABLE

The unique name that owns Gio.DBusObjectManagerClient :name or None if no-one is currently owning the name. Connect to the GObject.Object ::notify signal to track changes to this property.

New in version 2.30.

Gio.DBusObjectManagerClient.props.object_path
Name:

object-path

Type:

str

Default Value:

None

Flags:

READABLE, WRITABLE, CONSTRUCT_ONLY

The object path the manager is for.

New in version 2.30.