static void hev_dbus_object_test_notify_value_handler(GObject *obj, GParamSpec *pspec, gpointer user_data) { HevDBusInterfaceTest *self = HEV_DBUS_INTERFACE_TEST(user_data); HevDBusInterfaceTestPrivate *priv = HEV_DBUS_INTERFACE_TEST_GET_PRIVATE(self); GDBusConnection *connection = NULL; const gchar *object_path = NULL; GVariantBuilder *builder = NULL; GVariant *variant = NULL; gchar *p = NULL; g_debug("%s:%d[%s]", __FILE__, __LINE__, __FUNCTION__); connection = g_dbus_interface_skeleton_get_connection(G_DBUS_INTERFACE_SKELETON(self)); object_path = g_dbus_interface_skeleton_get_object_path(G_DBUS_INTERFACE_SKELETON(self)); builder = g_variant_builder_new(G_VARIANT_TYPE_VARDICT); g_object_get(obj, "value", &p, NULL); g_variant_builder_add(builder, "{sv}", "Value", g_variant_new_string(p)); variant = g_variant_builder_end(builder); g_variant_builder_unref(builder); variant = g_variant_new("(@a{sv})", variant); g_free(p); g_dbus_connection_emit_signal(connection, NULL, object_path, "org.freedesktop.DBus.Properties", "PropertiesChanged", variant, NULL); g_variant_unref(variant); }
static void unexport_all (GDBusObjectManagerServer *manager, gboolean only_manager) { GHashTableIter iter; RegistrationData *data; GHashTableIter iface_iter; GDBusInterfaceSkeleton *iface; g_return_if_fail (manager->priv->connection != NULL); g_warn_if_fail (manager->priv->manager_reg_id > 0); if (manager->priv->manager_reg_id > 0) { g_warn_if_fail (g_dbus_connection_unregister_object (manager->priv->connection, manager->priv->manager_reg_id)); manager->priv->manager_reg_id = 0; } if (only_manager) goto out; g_hash_table_iter_init (&iter, manager->priv->map_object_path_to_data); while (g_hash_table_iter_next (&iter, NULL, (gpointer) &data)) { g_hash_table_iter_init (&iface_iter, data->map_iface_name_to_iface); while (g_hash_table_iter_next (&iface_iter, NULL, (gpointer) &iface)) { g_warn_if_fail (g_dbus_interface_skeleton_get_connection (iface) != NULL); g_dbus_interface_skeleton_unexport (iface); } } out: ; }
static void dialog_handler_emit_response (FileDialogHandle *handle, const char *interface, const char *signal, GVariant *arguments) { g_dbus_connection_emit_signal (g_dbus_interface_skeleton_get_connection (handle->base.skeleton), "org.freedesktop.portal.Desktop", "/org/freedesktop/portal/desktop", interface, signal, arguments, NULL); }
static void export_all (GDBusObjectManagerServer *manager) { GHashTableIter iter; const gchar *object_path; RegistrationData *data; GHashTableIter iface_iter; GDBusInterfaceSkeleton *iface; GError *error; g_return_if_fail (manager->priv->connection != NULL); error = NULL; g_warn_if_fail (manager->priv->manager_reg_id == 0); manager->priv->manager_reg_id = g_dbus_connection_register_object (manager->priv->connection, manager->priv->object_path, (GDBusInterfaceInfo *) &manager_interface_info, &manager_interface_vtable, manager, NULL, /* user_data_free_func */ &error); if (manager->priv->manager_reg_id == 0) { g_warning ("%s: Error registering manager at %s: %s", G_STRLOC, manager->priv->object_path, error->message); g_error_free (error); } g_hash_table_iter_init (&iter, manager->priv->map_object_path_to_data); while (g_hash_table_iter_next (&iter, (gpointer) &object_path, (gpointer) &data)) { g_hash_table_iter_init (&iface_iter, data->map_iface_name_to_iface); while (g_hash_table_iter_next (&iface_iter, NULL, (gpointer) &iface)) { g_warn_if_fail (g_dbus_interface_skeleton_get_connection (iface) == NULL); error = NULL; if (!g_dbus_interface_skeleton_export (iface, manager->priv->connection, object_path, &error)) { g_warning ("%s: Error registering object at %s with interface %s: %s", G_STRLOC, object_path, g_dbus_interface_skeleton_get_info (iface)->name, error->message); g_error_free (error); } } } }
static void dbus_idle_callback (MetaIdleMonitor *monitor, guint watch_id, gpointer user_data) { DBusWatch *watch = user_data; GDBusInterfaceSkeleton *skeleton = G_DBUS_INTERFACE_SKELETON (watch->dbus_monitor); g_dbus_connection_emit_signal (g_dbus_interface_skeleton_get_connection (skeleton), watch->dbus_name, g_dbus_interface_skeleton_get_object_path (skeleton), "org.gnome.Mutter.IdleMonitor", "WatchFired", g_variant_new ("(u)", watch_id), NULL); }
static void set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { MMBaseManagerPrivate *priv = MM_BASE_MANAGER (object)->priv; switch (prop_id) { case PROP_CONNECTION: { gboolean had_connection = FALSE; if (priv->connection) { had_connection = TRUE; g_object_unref (priv->connection); } priv->connection = g_value_dup_object (value); /* Propagate connection loss to subobjects */ if (had_connection && !priv->connection) { if (priv->object_manager) { mm_dbg ("Stopping connection in object manager server"); g_dbus_object_manager_server_set_connection (priv->object_manager, NULL); } if (priv->test_skeleton && g_dbus_interface_skeleton_get_connection (G_DBUS_INTERFACE_SKELETON (priv->test_skeleton))) { mm_dbg ("Stopping connection in test skeleton"); g_dbus_interface_skeleton_unexport (G_DBUS_INTERFACE_SKELETON (priv->test_skeleton)); } } break; } case PROP_AUTO_SCAN: priv->auto_scan = g_value_get_boolean (value); break; case PROP_ENABLE_TEST: priv->enable_test = g_value_get_boolean (value); break; case PROP_PLUGIN_DIR: g_free (priv->plugin_dir); priv->plugin_dir = g_value_dup_string (value); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; } }
static void hev_dbus_object_test_changed_handler(GObject *obj, const gchar *value, gpointer user_data) { HevDBusInterfaceTest *self = HEV_DBUS_INTERFACE_TEST(user_data); HevDBusInterfaceTestPrivate *priv = HEV_DBUS_INTERFACE_TEST_GET_PRIVATE(self); GDBusConnection *connection = NULL; const gchar *object_path = NULL; GVariant *variant = NULL; g_debug("%s:%d[%s]", __FILE__, __LINE__, __FUNCTION__); connection = g_dbus_interface_skeleton_get_connection(G_DBUS_INTERFACE_SKELETON(self)); object_path = g_dbus_interface_skeleton_get_object_path(G_DBUS_INTERFACE_SKELETON(self)); variant = g_variant_new("(s)", value); g_dbus_connection_emit_signal(connection, NULL, object_path, HEV_DBUS_INTERFACE_TEST_NAME, "Changed", variant, NULL); g_variant_unref(variant); }