DBusProxy#
Added in version 2.26.
Superclasses: Object
Implemented Interfaces: AsyncInitable
, DBusInterface
, Initable
Provide comfortable and pythonic method calls.
This marshalls the method arguments into a GVariant, invokes the call_sync() method on the DBusProxy object, and unmarshalls the result GVariant back into a Python tuple.
The first argument always needs to be the D-Bus signature tuple of the method call. Example:
proxy = Gio.DBusProxy.new_sync(…) result = proxy.MyMethod(‘(is)’, 42, ‘hello’)
The exception are methods which take no arguments, like proxy.MyMethod(‘()’). For these you can omit the signature and just write proxy.MyMethod().
Optional keyword arguments:
timeout: timeout for the call in milliseconds (default to D-Bus timeout)
flags: Combination of Gio.DBusCallFlags.*
- result_handler: Do an asynchronous method call and invoke
result_handler(proxy_object, result, user_data) when it finishes.
error_handler: If the asynchronous call raises an exception, error_handler(proxy_object, exception, user_data) is called when it finishes. If error_handler is not given, result_handler is called with the exception object as result instead.
user_data: Optional user data to pass to result_handler for asynchronous calls.
Example for asynchronous calls:
- def mymethod_done(proxy, result, user_data):
- if isinstance(result, Exception):
# handle error
- else:
# do something with result
- proxy.MyMethod(‘(is)’, 42, ‘hello’,
result_handler=mymethod_done, user_data=’data’)
Constructors#
- class DBusProxy
- classmethod new_finish(res: AsyncResult) DBusProxy #
Finishes creating a
DBusProxy
.Added in version 2.26.
- Parameters:
res – A
AsyncResult
obtained from theAsyncReadyCallback
function passed tonew()
.
- classmethod new_for_bus_finish(res: AsyncResult) DBusProxy #
Finishes creating a
DBusProxy
.Added in version 2.26.
- Parameters:
res – A
AsyncResult
obtained from theAsyncReadyCallback
function passed tonew_for_bus()
.
- classmethod new_for_bus_sync(bus_type: BusType, flags: DBusProxyFlags, info: DBusInterfaceInfo | None, name: str, object_path: str, interface_name: str, cancellable: Cancellable | None = None) DBusProxy #
Like
new_sync()
but takes aBusType
instead of aDBusConnection
.DBusProxy
is used in this [example][gdbus-wellknown-proxy].Added in version 2.26.
- Parameters:
bus_type – A
BusType
.flags – Flags used when constructing the proxy.
info – A
DBusInterfaceInfo
specifying the minimal interface thatproxy
conforms to orNone
.name – A bus name (well-known or unique).
object_path – An object path.
interface_name – A D-Bus interface name.
cancellable – A
Cancellable
orNone
.
- classmethod new_sync(connection: DBusConnection, flags: DBusProxyFlags, info: DBusInterfaceInfo | None, name: str | None, object_path: str, interface_name: str, cancellable: Cancellable | None = None) DBusProxy #
Creates a proxy for accessing
interface_name
on the remote object atobject_path
owned byname
atconnection
and synchronously loads D-Bus properties unless theDO_NOT_LOAD_PROPERTIES
flag is used.If the
DO_NOT_CONNECT_SIGNALS
flag is not set, also sets up match rules for signals. Connect to theDBusProxy
::g-signal signal to handle signals from the remote object.If both
DO_NOT_LOAD_PROPERTIES
andDO_NOT_CONNECT_SIGNALS
are set, this constructor is guaranteed to return immediately without blocking.If
name
is a well-known name and theDO_NOT_AUTO_START
andDO_NOT_AUTO_START_AT_CONSTRUCTION
flags aren’t set and no name owner currently exists, the message bus will be requested to launch a name owner for the name.This is a synchronous failable constructor. See
new()
andnew_finish()
for the asynchronous version.DBusProxy
is used in this [example][gdbus-wellknown-proxy].Added in version 2.26.
- Parameters:
connection – A
DBusConnection
.flags – Flags used when constructing the proxy.
info – A
DBusInterfaceInfo
specifying the minimal interface thatproxy
conforms to orNone
.name – A bus name (well-known or unique) or
None
ifconnection
is not a message bus connection.object_path – An object path.
interface_name – A D-Bus interface name.
cancellable – A
Cancellable
orNone
.
Methods#
- class DBusProxy
- call(method_name: str, parameters: Variant | None, flags: DBusCallFlags, timeout_msec: int, cancellable: Cancellable | None = None, callback: Callable[[Object | None, AsyncResult, Any], None] | None = None, user_data: Any = None) None #
Asynchronously invokes the
method_name
method onproxy
.If
method_name
contains any dots, thenname
is split into interface and method name parts. This allows usingproxy
for invoking methods on other interfaces.If the
DBusConnection
associated withproxy
is closed then the operation will fail withCLOSED
. Ifcancellable
is canceled, the operation will fail withCANCELLED
. Ifparameters
contains a value not compatible with the D-Bus protocol, the operation fails withINVALID_ARGUMENT
.If the
parameters
Variant
is floating, it is consumed. This allows convenient ‘inline’ use ofnew()
, e.g.:g_dbus_proxy_call (proxy, "TwoStrings", g_variant_new ("(ss)", "Thing One", "Thing Two"), G_DBUS_CALL_FLAGS_NONE, -1, NULL, (GAsyncReadyCallback) two_strings_done, &data);
If
proxy
has an expected interface (seeDBusProxy
:g-interface-info) andmethod_name
is referenced by it, then the return value is checked against the return type.This is an asynchronous method. When the operation is finished,
callback
will be invoked in the [thread-default main context][g-main-context-push-thread-default] of the thread you are calling this method from. You can then callcall_finish()
to get the result of the operation. Seecall_sync()
for the synchronous version of this method.If
callback
isNone
then the D-Bus method call message will be sent with theNO_REPLY_EXPECTED
flag set.Added in version 2.26.
- Parameters:
method_name – Name of method to invoke.
parameters – A
Variant
tuple with parameters for the signal orNone
if not passing parameters.flags – Flags from the
DBusCallFlags
enumeration.timeout_msec – The timeout in milliseconds (with %G_MAXINT meaning “infinite”) or -1 to use the proxy default timeout.
cancellable – A
Cancellable
orNone
.callback – A
AsyncReadyCallback
to call when the request is satisfied orNone
if you don’t care about the result of the method invocation.user_data – The data to pass to
callback
.
- call_finish(res: AsyncResult) Variant #
Finishes an operation started with
call()
.Added in version 2.26.
- Parameters:
res – A
AsyncResult
obtained from theAsyncReadyCallback
passed tocall()
.
- call_sync(method_name: str, parameters: Variant | None, flags: DBusCallFlags, timeout_msec: int, cancellable: Cancellable | None = None) Variant #
Synchronously invokes the
method_name
method onproxy
.If
method_name
contains any dots, thenname
is split into interface and method name parts. This allows usingproxy
for invoking methods on other interfaces.If the
DBusConnection
associated withproxy
is disconnected then the operation will fail withCLOSED
. Ifcancellable
is canceled, the operation will fail withCANCELLED
. Ifparameters
contains a value not compatible with the D-Bus protocol, the operation fails withINVALID_ARGUMENT
.If the
parameters
Variant
is floating, it is consumed. This allows convenient ‘inline’ use ofnew()
, e.g.:g_dbus_proxy_call_sync (proxy, "TwoStrings", g_variant_new ("(ss)", "Thing One", "Thing Two"), G_DBUS_CALL_FLAGS_NONE, -1, NULL, &error);
The calling thread is blocked until a reply is received. See
call()
for the asynchronous version of this method.If
proxy
has an expected interface (seeDBusProxy
:g-interface-info) andmethod_name
is referenced by it, then the return value is checked against the return type.Added in version 2.26.
- Parameters:
method_name – Name of method to invoke.
parameters – A
Variant
tuple with parameters for the signal orNone
if not passing parameters.flags – Flags from the
DBusCallFlags
enumeration.timeout_msec – The timeout in milliseconds (with %G_MAXINT meaning “infinite”) or -1 to use the proxy default timeout.
cancellable – A
Cancellable
orNone
.
- call_with_unix_fd_list(method_name: str, parameters: Variant | None, flags: DBusCallFlags, timeout_msec: int, fd_list: UnixFDList | None = None, cancellable: Cancellable | None = None, callback: Callable[[Object | None, AsyncResult, Any], None] | None = None, user_data: Any = None) None #
Like
call()
but also takes aUnixFDList
object.This method is only available on UNIX.
Added in version 2.30.
- Parameters:
method_name – Name of method to invoke.
parameters – A
Variant
tuple with parameters for the signal orNone
if not passing parameters.flags – Flags from the
DBusCallFlags
enumeration.timeout_msec – The timeout in milliseconds (with %G_MAXINT meaning “infinite”) or -1 to use the proxy default timeout.
fd_list – A
UnixFDList
orNone
.cancellable – A
Cancellable
orNone
.callback – A
AsyncReadyCallback
to call when the request is satisfied orNone
if you don’t care about the result of the method invocation.user_data – The data to pass to
callback
.
- call_with_unix_fd_list_finish(res: AsyncResult) Tuple[Variant, UnixFDList] #
Finishes an operation started with
call_with_unix_fd_list()
.Added in version 2.30.
- Parameters:
res – A
AsyncResult
obtained from theAsyncReadyCallback
passed tocall_with_unix_fd_list()
.
- call_with_unix_fd_list_sync(method_name: str, parameters: Variant | None, flags: DBusCallFlags, timeout_msec: int, fd_list: UnixFDList | None = None, cancellable: Cancellable | None = None) Tuple[Variant, UnixFDList] #
Like
call_sync()
but also takes and returnsUnixFDList
objects.This method is only available on UNIX.
Added in version 2.30.
- Parameters:
method_name – Name of method to invoke.
parameters – A
Variant
tuple with parameters for the signal orNone
if not passing parameters.flags – Flags from the
DBusCallFlags
enumeration.timeout_msec – The timeout in milliseconds (with %G_MAXINT meaning “infinite”) or -1 to use the proxy default timeout.
fd_list – A
UnixFDList
orNone
.cancellable – A
Cancellable
orNone
.
- do_g_properties_changed(self, changed_properties: Variant, invalidated_properties: str) None #
- Parameters:
changed_properties
invalidated_properties
- do_g_signal(self, sender_name: str, signal_name: str, parameters: Variant) None #
- Parameters:
sender_name
signal_name
parameters
- get_cached_property(property_name: str) Variant | None #
Looks up the value for a property from the cache. This call does no blocking IO.
If
proxy
has an expected interface (seeDBusProxy
:g-interface-info) andproperty_name
is referenced by it, thenvalue
is checked against the type of the property.Added in version 2.26.
- Parameters:
property_name – Property name.
- get_cached_property_names() list[str] | None #
Gets the names of all cached properties on
proxy
.Added in version 2.26.
- get_connection() DBusConnection #
Gets the connection
proxy
is for.Added in version 2.26.
- get_default_timeout() int #
Gets the timeout to use if -1 (specifying default timeout) is passed as
timeout_msec
in thecall()
andcall_sync()
functions.See the
DBusProxy
:g-default-timeout property for more details.Added in version 2.26.
- get_flags() DBusProxyFlags #
Gets the flags that
proxy
was constructed with.Added in version 2.26.
- get_interface_info() DBusInterfaceInfo | None #
Returns the
DBusInterfaceInfo
, if any, specifying the interface thatproxy
conforms to. See theDBusProxy
:g-interface-info property for more details.Added in version 2.26.
- get_name() str | None #
Gets the name that
proxy
was constructed for.When connected to a message bus, this will usually be non-
None
. However, it may beNone
for a proxy that communicates using a peer-to-peer pattern.Added in version 2.26.
- get_name_owner() str | None #
The unique name that owns the name that
proxy
is for orNone
if no-one currently owns that name. You may connect to theObject
::notify signal to track changes to theDBusProxy
:g-name-owner property.Added in version 2.26.
- classmethod new(flags: DBusProxyFlags, info: DBusInterfaceInfo | None, name: str | None, object_path: str, interface_name: str, cancellable: Cancellable | None = None, callback: Callable[[Object | None, AsyncResult, Any], None] | None = None, user_data: Any = None) None #
Creates a proxy for accessing
interface_name
on the remote object atobject_path
owned byname
atconnection
and asynchronously loads D-Bus properties unless theDO_NOT_LOAD_PROPERTIES
flag is used. Connect to theDBusProxy
::g-properties-changed signal to get notified about property changes.If the
DO_NOT_CONNECT_SIGNALS
flag is not set, also sets up match rules for signals. Connect to theDBusProxy
::g-signal signal to handle signals from the remote object.If both
DO_NOT_LOAD_PROPERTIES
andDO_NOT_CONNECT_SIGNALS
are set, this constructor is guaranteed to complete immediately without blocking.If
name
is a well-known name and theDO_NOT_AUTO_START
andDO_NOT_AUTO_START_AT_CONSTRUCTION
flags aren’t set and no name owner currently exists, the message bus will be requested to launch a name owner for the name.This is a failable asynchronous constructor - when the proxy is ready,
callback
will be invoked and you can usenew_finish()
to get the result.See
new_sync()
and for a synchronous version of this constructor.DBusProxy
is used in this [example][gdbus-wellknown-proxy].Added in version 2.26.
- Parameters:
flags – Flags used when constructing the proxy.
info – A
DBusInterfaceInfo
specifying the minimal interface thatproxy
conforms to orNone
.name – A bus name (well-known or unique) or
None
ifconnection
is not a message bus connection.object_path – An object path.
interface_name – A D-Bus interface name.
cancellable – A
Cancellable
orNone
.callback – Callback function to invoke when the proxy is ready.
user_data – User data to pass to
callback
.
- classmethod new_for_bus(flags: DBusProxyFlags, info: DBusInterfaceInfo | None, name: str, object_path: str, interface_name: str, cancellable: Cancellable | None = None, callback: Callable[[Object | None, AsyncResult, Any], None] | None = None, user_data: Any = None) None #
Like
new()
but takes aBusType
instead of aDBusConnection
.DBusProxy
is used in this [example][gdbus-wellknown-proxy].Added in version 2.26.
- Parameters:
flags – Flags used when constructing the proxy.
info – A
DBusInterfaceInfo
specifying the minimal interface thatproxy
conforms to orNone
.name – A bus name (well-known or unique).
object_path – An object path.
interface_name – A D-Bus interface name.
cancellable – A
Cancellable
orNone
.callback – Callback function to invoke when the proxy is ready.
user_data – User data to pass to
callback
.
- set_cached_property(property_name: str, value: Variant | None = None) None #
If
value
is notNone
, sets the cached value for the property with nameproperty_name
to the value invalue
.If
value
isNone
, then the cached value is removed from the property cache.If
proxy
has an expected interface (seeDBusProxy
:g-interface-info) andproperty_name
is referenced by it, thenvalue
is checked against the type of the property.If the
value
Variant
is floating, it is consumed. This allows convenient ‘inline’ use ofnew()
, e.g.g_dbus_proxy_set_cached_property (proxy, "SomeProperty", g_variant_new ("(si)", "A String", 42));
Normally you will not need to use this method since
proxy
is tracking changes using theorg.freedesktop.DBus.Properties.PropertiesChanged
D-Bus signal. However, for performance reasons an object may decide to not use this signal for some properties and instead use a proprietary out-of-band mechanism to transmit changes.As a concrete example, consider an object with a property
ChatroomParticipants
which is an array of strings. Instead of transmitting the same (long) array every time the property changes, it is more efficient to only transmit the delta using e.g. signalsChatroomParticipantJoined(String name)
andChatroomParticipantParted(String name)
.Added in version 2.26.
- Parameters:
property_name – Property name.
value – Value for the property or
None
to remove it from the cache.
- set_default_timeout(timeout_msec: int) None #
Sets the timeout to use if -1 (specifying default timeout) is passed as
timeout_msec
in thecall()
andcall_sync()
functions.See the
DBusProxy
:g-default-timeout property for more details.Added in version 2.26.
- Parameters:
timeout_msec – Timeout in milliseconds.
- set_interface_info(info: DBusInterfaceInfo | None = None) None #
Ensure that interactions with
proxy
conform to the given interface. See theDBusProxy
:g-interface-info property for more details.Added in version 2.26.
- Parameters:
info – Minimum interface this proxy conforms to or
None
to unset.
Properties#
- class DBusProxy
-
- props.g_connection: DBusConnection#
The type of the None singleton.
Added in version 2.26.
- props.g_flags: DBusProxyFlags#
The type of the None singleton.
Added in version 2.26.
- props.g_interface_info: DBusInterfaceInfo#
The type of the None singleton.
Added in version 2.26.
Signals#
- class DBusProxy.signals
- g_properties_changed(changed_properties: Variant, invalidated_properties: list[str]) None #
The type of the None singleton.
Added in version 2.26.
- Parameters:
changed_properties – A
Variant
containing the properties that changed (type:a{sv}
)invalidated_properties – A
None
terminated array of properties that was invalidated
- g_signal(sender_name: str | None, signal_name: str, parameters: Variant) None #
The type of the None singleton.
Added in version 2.26.
- Parameters:
sender_name – The sender of the signal or
None
if the connection is not a bus connection.signal_name – The name of the signal.
parameters – A
Variant
tuple with parameters for the signal.