:right-sidebar: True DBusInterfaceVTable =================================================================== .. currentmodule:: gi.repository.Gio .. versionadded:: 2.26 .. class:: DBusInterfaceVTable(*args, **kwargs) :no-contents-entry: Virtual table for handling properties and method calls for a D-Bus interface. Since 2.38, if you want to handle getting/setting D-Bus properties asynchronously, give :const:`None` as your get_property() or set_property() function. The D-Bus call will be directed to your ``method_call`` function, with the provided ``interface_name`` set to "org.freedesktop.DBus.Properties". Ownership of the :obj:`~gi.repository.Gio.DBusMethodInvocation` object passed to the method_call() function is transferred to your handler; you must call one of the methods of :obj:`~gi.repository.Gio.DBusMethodInvocation` to return a reply (possibly empty), or an error. These functions also take ownership of the passed-in invocation object, so unless the invocation object has otherwise been referenced, it will be then be freed. Calling one of these functions may be done within your method_call() implementation but it also can be done at a later point to handle the method asynchronously. The usual checks on the validity of the calls is performed. For ``Get`` calls, an error is automatically returned if the property does not exist or the permissions do not allow access. The same checks are performed for ``Set`` calls, and the provided value is also checked for being the correct type. For both ``Get`` and ``Set`` calls, the :obj:`~gi.repository.Gio.DBusMethodInvocation` passed to the ``method_call`` handler can be queried with :func:`~gi.repository.Gio.DBusMethodInvocation.get_property_info` to get a pointer to the :obj:`~gi.repository.Gio.DBusPropertyInfo` of the property. If you have readable properties specified in your interface info, you must ensure that you either provide a non-:const:`None` ``get_property``\() function or provide implementations of both the ``Get`` and ``GetAll`` methods on org.freedesktop.DBus.Properties interface in your ``method_call`` function. Note that the required return type of the ``Get`` call is ``(v)``\, not the type of the property. ``GetAll`` expects a return value of type ``a{sv}``\. If you have writable properties specified in your interface info, you must ensure that you either provide a non-:const:`None` ``set_property``\() function or provide an implementation of the ``Set`` call. If implementing the call, you must return the value of type %G_VARIANT_TYPE_UNIT. Fields ------ .. rst-class:: interim-class .. class:: DBusInterfaceVTable :no-index: .. attribute:: get_property Function for getting a property. .. attribute:: method_call Function for handling incoming method calls. .. attribute:: padding .. attribute:: set_property Function for setting a property.