Gio.DBusConnection.prototype.register_object
function register_object(object_path: String, interface_info: Gio.DBusInterfaceInfo, vtable: Gio.DBusInterfaceVTable, user_data: void, user_data_free_func: GLib.DestroyNotify): Number(guint) { // Gjs wrapper for g_dbus_connection_register_object() }
Registers callbacks for exported objects at object_path with the D-Bus interface that is described in interface_info.
Calls to functions in vtable (and user_data_free_func) will happen in the [thread-default main context][g-main-context-push-thread-default] of the thread you are calling this method from.
Note that all GLib.Variant values passed to functions in vtable will match the signature given in interface_info - if a remote caller passes incorrect values, the `org.freedesktop.DBus.Error.InvalidArgs` is returned to the remote caller.
Additionally, if the remote caller attempts to invoke methods or access properties not mentioned in interface_info the `org.freedesktop.DBus.Error.UnknownMethod` resp. `org.freedesktop.DBus.Error.InvalidArgs` errors are returned to the caller.
It is considered a programming error if the Gio.DBusInterfaceGetPropertyFunc function in vtable returns a GLib.Variant of incorrect type.
If an existing callback is already registered at object_path and @interface_name, then @error is set to #G_IO_ERROR_EXISTS.
GDBus automatically implements the standard D-Bus interfaces org.freedesktop.DBus.Properties, org.freedesktop.DBus.Introspectable and org.freedesktop.Peer, so you don't have to implement those for the objects you export. You can implement org.freedesktop.DBus.Properties yourself, e.g. to handle getting and setting of properties asynchronously.
Note that the reference count on interface_info will be incremented by 1 (unless allocated statically, e.g. if the reference count is -1, see Gio.DBusInterfaceInfo.prototype.ref) for as long as the object is exported. Also note that vtable will be copied.
See this [server][gdbus-server] for an example of how to use this method.
Since 2.26
- object_path
the object path to register at
- interface_info
introspection data for the interface
- vtable
a Gio.DBusInterfaceVTable to call into or null
- user_data
data to pass to functions in vtable
- user_data_free_func
function to call when the object path is unregistered
- Returns
0 if @error is set, otherwise a registration id (never 0) that can be used with Gio.DBusConnection.prototype.unregister_object