DBusInterfaceSkeleton

Added in version 2.30.

class DBusInterfaceSkeleton(**properties: Any)

Superclasses: Object

Implemented Interfaces: DBusInterface

Abstract base class for D-Bus interfaces on the service side.

Methods

class DBusInterfaceSkeleton
export(connection: DBusConnection, object_path: str) bool

Exports @``interface_`` at object_path on connection.

This can be called multiple times to export the same @``interface_`` onto multiple connections however the object_path provided must be the same for all connections.

Use unexport() to unexport the object.

Added in version 2.30.

Parameters:
  • connection – A DBusConnection to export @``interface_`` on.

  • object_path – The path to export the interface at.

flush() None

If @``interface_`` has outstanding changes, request for these changes to be emitted immediately.

For example, an exported D-Bus interface may queue up property changes and emit the org.freedesktop.DBus.Properties.PropertiesChanged signal later (e.g. in an idle handler). This technique is useful for collapsing multiple property changes into one.

Added in version 2.30.

get_connection() DBusConnection | None

Gets the first connection that @``interface_`` is exported on, if any.

Added in version 2.30.

get_connections() list[DBusConnection]

Gets a list of the connections that @``interface_`` is exported on.

Added in version 2.32.

get_flags() DBusInterfaceSkeletonFlags

Gets the DBusInterfaceSkeletonFlags that describes what the behavior of @``interface_``

Added in version 2.30.

get_info() DBusInterfaceInfo

Gets D-Bus introspection information for the D-Bus interface implemented by @``interface_.``

Added in version 2.30.

get_object_path() str | None

Gets the object path that @``interface_`` is exported on, if any.

Added in version 2.30.

get_properties() Variant

Gets all D-Bus properties for @``interface_.``

Added in version 2.30.

get_vtable() DBusInterfaceVTable

Gets the interface vtable for the D-Bus interface implemented by @``interface_.`` The returned function pointers should expect @``interface_`` itself to be passed as user_data.

Added in version 2.30.

has_connection(connection: DBusConnection) bool

Checks if @``interface_`` is exported on connection.

Added in version 2.32.

Parameters:

connection – A DBusConnection.

set_flags(flags: DBusInterfaceSkeletonFlags) None

Sets flags describing what the behavior of skeleton should be.

Added in version 2.30.

Parameters:

flags – Flags from the DBusInterfaceSkeletonFlags enumeration.

unexport() None

Stops exporting @``interface_`` on all connections it is exported on.

To unexport @``interface_`` from only a single connection, use unexport_from_connection()

Added in version 2.30.

unexport_from_connection(connection: DBusConnection) None

Stops exporting @``interface_`` on connection.

To stop exporting on all connections the interface is exported on, use unexport().

Added in version 2.32.

Parameters:

connection – A DBusConnection.

Properties

class DBusInterfaceSkeleton
props.g_flags: DBusInterfaceSkeletonFlags

Flags from the DBusInterfaceSkeletonFlags enumeration.

Added in version 2.30.

Signals

class DBusInterfaceSkeleton.signals
g_authorize_method(invocation: DBusMethodInvocation) bool

Emitted when a method is invoked by a remote caller and used to determine if the method call is authorized.

Note that this signal is emitted in a thread dedicated to handling the method call so handlers are allowed to perform blocking IO. This means that it is appropriate to call e.g. polkit_authority_check_authorization_sync() with the POLKIT_CHECK_AUTHORIZATION_FLAGS_ALLOW_USER_INTERACTION flag set.

If False is returned then no further handlers are run and the signal handler must take a reference to invocation and finish handling the call (e.g. return an error via return_error()).

Otherwise, if True is returned, signal emission continues. If no handlers return False, then the method is dispatched. If interface has an enclosing DBusObjectSkeleton, then the DBusObjectSkeleton::authorize-method signal handlers run before the handlers for this signal.

The default class handler just returns True.

Please note that the common case is optimized: if no signals handlers are connected and the default class handler isn’t overridden (for both interface and the enclosing DBusObjectSkeleton, if any) and DBusInterfaceSkeleton:g-flags does not have the HANDLE_METHOD_INVOCATIONS_IN_THREAD flags set, no dedicated thread is ever used and the call will be handled in the same thread as the object that interface belongs to was exported in.

Added in version 2.30.

Parameters:

invocation – A DBusMethodInvocation.

Virtual Methods

class DBusInterfaceSkeleton
do_flush() None

If @``interface_`` has outstanding changes, request for these changes to be emitted immediately.

For example, an exported D-Bus interface may queue up property changes and emit the org.freedesktop.DBus.Properties.PropertiesChanged signal later (e.g. in an idle handler). This technique is useful for collapsing multiple property changes into one.

Added in version 2.30.

do_g_authorize_method(invocation: DBusMethodInvocation) bool

Signal class handler for the DBusInterfaceSkeleton::g-authorize-method signal.

Parameters:

invocation

do_get_info() DBusInterfaceInfo

Gets D-Bus introspection information for the D-Bus interface implemented by @``interface_.``

Added in version 2.30.

do_get_properties() Variant

Gets all D-Bus properties for @``interface_.``

Added in version 2.30.

do_get_vtable() DBusInterfaceVTable

Gets the interface vtable for the D-Bus interface implemented by @``interface_.`` The returned function pointers should expect @``interface_`` itself to be passed as user_data.

Added in version 2.30.

Fields

class DBusInterfaceSkeleton
parent_instance
priv