* g_dbus_connection_register_object:
* @connection: A #GDBusConnection.
* @object_path: The object path to register at.
- * @interface_name: The D-Bus interface to register.
* @introspection_data: Introspection data for the interface.
* @vtable: A #GDBusInterfaceVTable to call into or %NULL.
* @user_data: Data to pass to functions in @vtable.
* @error: Return location for error or %NULL.
*
* Registers callbacks for exported objects at @object_path with the
- * D-Bus interface @interface_name.
+ * D-Bus interface that is described in @introspection_data.
*
* Calls to functions in @vtable (and @user_data_free_func) will
* happen in the <link linkend="g-main-context-push-thread-default">thread-default main
guint
g_dbus_connection_register_object (GDBusConnection *connection,
const gchar *object_path,
- const gchar *interface_name,
const GDBusInterfaceInfo *introspection_data,
const GDBusInterfaceVTable *vtable,
gpointer user_data,
g_return_val_if_fail (G_IS_DBUS_CONNECTION (connection), 0);
g_return_val_if_fail (!g_dbus_connection_is_closed (connection), 0);
g_return_val_if_fail (object_path != NULL && g_variant_is_object_path (object_path), 0);
- g_return_val_if_fail (interface_name == NULL || g_dbus_is_interface_name (interface_name), 0);
g_return_val_if_fail (introspection_data != NULL, 0);
+ g_return_val_if_fail (g_dbus_is_interface_name (introspection_data->name), 0);
g_return_val_if_fail (error == NULL || *error == NULL, 0);
ret = 0;
g_hash_table_insert (connection->priv->map_object_path_to_eo, eo->object_path, eo);
}
- ei = g_hash_table_lookup (eo->map_if_name_to_ei, interface_name);
+ ei = g_hash_table_lookup (eo->map_if_name_to_ei, introspection_data->name);
if (ei != NULL)
{
g_set_error (error,
G_IO_ERROR,
G_IO_ERROR_EXISTS,
_("An object is already exported for the interface %s at %s"),
- interface_name,
+ introspection_data->name,
object_path);
goto out;
}
ei->user_data_free_func = user_data_free_func;
ei->vtable = vtable;
ei->introspection_data = introspection_data;
- ei->interface_name = g_strdup (interface_name);
+ ei->interface_name = g_strdup (introspection_data->name);
ei->context = g_main_context_get_thread_default ();
if (ei->context != NULL)
g_main_context_ref (ei->context);
guint g_dbus_connection_register_object (GDBusConnection *connection,
const gchar *object_path,
- const gchar *interface_name,
const GDBusInterfaceInfo *introspection_data,
const GDBusInterfaceVTable *vtable,
gpointer user_data,
G_CALLBACK (send_property_change), connection);
registration_id = g_dbus_connection_register_object (connection,
"/org/myorg/MyObject",
- "org.myorg.MyObject",
introspection_data->interfaces[0],
&interface_vtable,
myobj,
g_object_ref (connection);
registration_id = g_dbus_connection_register_object (connection,
"/org/gtk/GDBus/TestObject",
- "org.gtk.GDBus.TestPeerInterface",
introspection_data->interfaces[0],
&interface_vtable,
NULL, /* user_data */
registration_id = g_dbus_connection_register_object (connection,
"/org/gtk/GDBus/TestObject",
- "org.gtk.GDBus.TestInterface",
introspection_data->interfaces[0],
&interface_vtable,
NULL, /* user_data */
registration_id = g_dbus_connection_register_object (c,
"/foo/boss",
- foo_interface_info.name,
&foo_interface_info,
&foo_vtable,
&data,
registration_id = g_dbus_connection_register_object (c,
"/foo/boss",
- bar_interface_info.name,
&bar_interface_info,
NULL,
&data,
registration_id = g_dbus_connection_register_object (c,
"/foo/boss/worker1",
- foo_interface_info.name,
&foo_interface_info,
NULL,
&data,
registration_id = g_dbus_connection_register_object (c,
"/foo/boss/worker2",
- bar_interface_info.name,
&bar_interface_info,
NULL,
&data,
registration_id = g_dbus_connection_register_object (c,
"/foo/boss/interns/intern1",
- foo_interface_info.name,
&foo_interface_info,
NULL,
&data,
/* ... and try again at another path */
registration_id = g_dbus_connection_register_object (c,
"/foo/boss/interns/intern2",
- bar_interface_info.name,
&bar_interface_info,
NULL,
&data,
/* register at the same path/interface - this should fail */
registration_id = g_dbus_connection_register_object (c,
"/foo/boss/interns/intern2",
- bar_interface_info.name,
&bar_interface_info,
NULL,
&data,
/* register at different interface - shouldn't fail */
registration_id = g_dbus_connection_register_object (c,
"/foo/boss/interns/intern2",
- foo_interface_info.name,
&foo_interface_info,
NULL,
&data,
/* register it back */
registration_id = g_dbus_connection_register_object (c,
"/foo/boss/interns/intern2",
- foo_interface_info.name,
&foo_interface_info,
NULL,
&data,
registration_id = g_dbus_connection_register_object (c,
"/foo/boss/interns/intern3",
- bar_interface_info.name,
&bar_interface_info,
NULL,
&data,
*/
registration_id = g_dbus_connection_register_object (c,
"/foo/boss/executives/non_subtree_object",
- bar_interface_info.name,
&bar_interface_info,
NULL,
&data,
num_successful_registrations++;
registration_id = g_dbus_connection_register_object (c,
"/foo/boss/executives/non_subtree_object",
- foo_interface_info.name,
&foo_interface_info,
NULL,
&data,
error = NULL;
reg_id = g_dbus_connection_register_object (connection,
"/org/gtk/GDBus/PeerTestObject",
- "org.gtk.GDBus.PeerTestInterface",
test_interface_introspection_data,
&test_interface_vtable,
data,
error = NULL;
reg_id = g_dbus_connection_register_object (connection,
"/org/gtk/GDBus/PeerTestObject",
- "org.gtk.GDBus.PeerTestInterface",
&test_interface_introspection_data,
&test_interface_vtable,
data,