Gio.DBusInterfaceVTable

const Gio = imports.gi.Gio;

let dBusInterfaceVTable = new Gio.DBusInterfaceVTable();
  

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 null 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 <literal>"org.freedesktop.DBus.Properties"</literal>.

The usual checks on the validity of the calls is performed. For <literal>'Get'</literal> 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 <literal>'Set'</literal> calls, and the provided value is also checked for being the correct type.

For both <literal>'Get'</literal> and <literal>'Set'</literal> calls, the Gio.DBusMethodInvocation passed to the method_call handler can be queried with Gio.DBusMethodInvocation.prototype.get_property_info to get a pointer to the Gio.DBusPropertyInfo of the property.

If you have readable properties specified in your interface info, you must ensure that you either provide a non-null @get_property() function or provide implementations of both the <literal>'Get'</literal> and <literal>'GetAll'</literal> methods on the <literal>'org.freedesktop.DBus.Properties'</literal> interface in your @method_call function. Note that the required return type of the <literal>'Get'</literal> call is <literal>(v)</literal>, not the type of the property. <literal>'GetAll'</literal> expects a return value of type <literal>a{sv}</literal>.

If you have writable properties specified in your interface info, you must ensure that you either provide a non-null @set_property() function or provide an implementation of the <literal>'Set'</literal> call. If implementing the call, you must return the value of type %G_VARIANT_TYPE_UNIT.

Since 2.26