static void manager_init (Manager *manager) { g_dbus_interface_skeleton_set_flags (G_DBUS_INTERFACE_SKELETON (manager), G_DBUS_INTERFACE_SKELETON_FLAGS_HANDLE_METHOD_INVOCATIONS_IN_THREAD); manager->cancellable = g_cancellable_new (); }
static void on_bus_acquired (GDBusConnection *connection, const gchar *name, gpointer user_data) { GError *error = NULL; g_debug ("Bus acquired, creating skeleton"); helper = flatpak_system_helper_skeleton_new (); g_object_set_data_full (G_OBJECT(helper), "track-alive", GINT_TO_POINTER(42), skeleton_died_cb); g_dbus_interface_skeleton_set_flags (G_DBUS_INTERFACE_SKELETON (helper), G_DBUS_INTERFACE_SKELETON_FLAGS_HANDLE_METHOD_INVOCATIONS_IN_THREAD); g_signal_connect (helper, "handle-deploy", G_CALLBACK (handle_deploy), NULL); g_signal_connect (helper, "handle-deploy-appstream", G_CALLBACK (handle_deploy_appstream), NULL); g_signal_connect (helper, "handle-uninstall", G_CALLBACK (handle_uninstall), NULL); g_signal_connect (helper, "handle-install-bundle", G_CALLBACK (handle_install_bundle), NULL); g_signal_connect (helper, "handle-configure-remote", G_CALLBACK (handle_configure_remote), NULL); g_signal_connect (helper, "g-authorize-method", G_CALLBACK (flatpak_authorize_method_handler), NULL); if (!g_dbus_interface_skeleton_export (G_DBUS_INTERFACE_SKELETON (helper), connection, "/org/freedesktop/Flatpak/SystemHelper", &error)) { g_warning ("error: %s\n", error->message); g_error_free (error); } }
static void storaged_linux_block_bcache_init (StoragedLinuxBlockBcache *self) { g_dbus_interface_skeleton_set_flags (G_DBUS_INTERFACE_SKELETON (self), G_DBUS_INTERFACE_SKELETON_FLAGS_HANDLE_METHOD_INVOCATIONS_IN_THREAD); }
static void machines_init (Machines *machines) { g_dbus_interface_skeleton_set_flags (G_DBUS_INTERFACE_SKELETON (machines), G_DBUS_INTERFACE_SKELETON_FLAGS_HANDLE_METHOD_INVOCATIONS_IN_THREAD); g_mutex_init (&machines->lock); }
static void storaged_linux_manager_init (StoragedLinuxManager *manager) { g_mutex_init (&(manager->lock)); g_dbus_interface_skeleton_set_flags (G_DBUS_INTERFACE_SKELETON (manager), G_DBUS_INTERFACE_SKELETON_FLAGS_HANDLE_METHOD_INVOCATIONS_IN_THREAD); }
static void udisks_linux_logical_volume_init (UDisksLinuxLogicalVolume *logical_volume) { logical_volume->needs_udev_hack = TRUE; g_dbus_interface_skeleton_set_flags (G_DBUS_INTERFACE_SKELETON (logical_volume), G_DBUS_INTERFACE_SKELETON_FLAGS_HANDLE_METHOD_INVOCATIONS_IN_THREAD); }
static void storaged_linux_manager_init (StoragedLinuxManager *manager) { g_mutex_init (&(manager->lock)); g_dbus_interface_skeleton_set_flags (G_DBUS_INTERFACE_SKELETON (manager), G_DBUS_INTERFACE_SKELETON_FLAGS_HANDLE_METHOD_INVOCATIONS_IN_THREAD); storaged_manager_set_supported_filesystems (STORAGED_MANAGER (manager), get_supported_filesystems ()); }
static void disk_io_monitor_init (DiskIOMonitor *monitor) { const gchar *legends[4] = {"Disk Reads", "Disk Writes", "I/O Operations", NULL}; /* TODO: i18n */ g_dbus_interface_skeleton_set_flags (G_DBUS_INTERFACE_SKELETON (monitor), G_DBUS_INTERFACE_SKELETON_FLAGS_HANDLE_METHOD_INVOCATIONS_IN_THREAD); /* Assign legends */ cockpit_resource_monitor_set_legends (COCKPIT_RESOURCE_MONITOR (monitor), legends); monitor->samples_prev = -1; monitor->samples_max = 300; monitor->samples = g_new0 (Sample, monitor->samples_max); }
static void export_portal_implementation (GDBusConnection *connection, GDBusInterfaceSkeleton *skeleton) { g_autoptr(GError) error = NULL; g_dbus_interface_skeleton_set_flags (skeleton, G_DBUS_INTERFACE_SKELETON_FLAGS_HANDLE_METHOD_INVOCATIONS_IN_THREAD); g_signal_connect (skeleton, "g-authorize-method", G_CALLBACK (authorize_callback), NULL); if (!g_dbus_interface_skeleton_export (skeleton, connection, DESKTOP_PORTAL_OBJECT_PATH, &error)) { g_warning ("Error: %s", error->message); return; } g_debug ("providing portal %s", g_dbus_interface_skeleton_get_info (skeleton)->name); }
static void storage_volume_group_init (StorageVolumeGroup *volume_group) { g_dbus_interface_skeleton_set_flags (G_DBUS_INTERFACE_SKELETON (volume_group), G_DBUS_INTERFACE_SKELETON_FLAGS_HANDLE_METHOD_INVOCATIONS_IN_THREAD); }
static void storaged_linux_filesystem_btrfs_init (StoragedLinuxFilesystemBTRFS *l_fs_btrfs) { g_dbus_interface_skeleton_set_flags (G_DBUS_INTERFACE_SKELETON (l_fs_btrfs), G_DBUS_INTERFACE_SKELETON_FLAGS_HANDLE_METHOD_INVOCATIONS_IN_THREAD); }
static gboolean build_object (GoaProvider *provider, GoaObjectSkeleton *object, GKeyFile *key_file, const gchar *group, GDBusConnection *connection, gboolean just_added, GError **error) { GoaAccount *account; GoaCalendar *calendar; GoaContacts *contacts; GoaExchange *exchange; GoaMail *mail; GoaPasswordBased *password_based; gboolean calendar_enabled; gboolean contacts_enabled; gboolean mail_enabled; gboolean ret; account = NULL; calendar = NULL; contacts = NULL; exchange = NULL; mail = NULL; password_based = NULL; ret = FALSE; /* Chain up */ if (!GOA_PROVIDER_CLASS (goa_exchange_provider_parent_class)->build_object (provider, object, key_file, group, connection, just_added, error)) goto out; password_based = goa_object_get_password_based (GOA_OBJECT (object)); if (password_based == NULL) { password_based = goa_password_based_skeleton_new (); /* Ensure D-Bus method invocations run in their own thread */ g_dbus_interface_skeleton_set_flags (G_DBUS_INTERFACE_SKELETON (password_based), G_DBUS_INTERFACE_SKELETON_FLAGS_HANDLE_METHOD_INVOCATIONS_IN_THREAD); goa_object_skeleton_set_password_based (object, password_based); g_signal_connect (password_based, "handle-get-password", G_CALLBACK (on_handle_get_password), NULL); } account = goa_object_get_account (GOA_OBJECT (object)); /* Email */ mail = goa_object_get_mail (GOA_OBJECT (object)); mail_enabled = g_key_file_get_boolean (key_file, group, "MailEnabled", NULL); if (mail_enabled) { if (mail == NULL) { const gchar *email_address; email_address = goa_account_get_presentation_identity (account); mail = goa_mail_skeleton_new (); g_object_set (G_OBJECT (mail), "email-address", email_address, NULL); goa_object_skeleton_set_mail (object, mail); } } else { if (mail != NULL) goa_object_skeleton_set_mail (object, NULL); } /* Calendar */ calendar = goa_object_get_calendar (GOA_OBJECT (object)); calendar_enabled = g_key_file_get_boolean (key_file, group, "CalendarEnabled", NULL); if (calendar_enabled) { if (calendar == NULL) { calendar = goa_calendar_skeleton_new (); goa_object_skeleton_set_calendar (object, calendar); } } else { if (calendar != NULL) goa_object_skeleton_set_calendar (object, NULL); } /* Contacts */ contacts = goa_object_get_contacts (GOA_OBJECT (object)); contacts_enabled = g_key_file_get_boolean (key_file, group, "ContactsEnabled", NULL); if (contacts_enabled) { if (contacts == NULL) { contacts = goa_contacts_skeleton_new (); goa_object_skeleton_set_contacts (object, contacts); } } else { if (contacts != NULL) goa_object_skeleton_set_contacts (object, NULL); } /* Exchange */ exchange = goa_object_get_exchange (GOA_OBJECT (object)); if (exchange == NULL) { gchar *host; host = g_key_file_get_string (key_file, group, "Host", NULL); exchange = goa_exchange_skeleton_new (); g_object_set (G_OBJECT (exchange), "host", host, NULL); goa_object_skeleton_set_exchange (object, exchange); g_free (host); } if (just_added) { goa_account_set_mail_disabled (account, !mail_enabled); goa_account_set_calendar_disabled (account, !calendar_enabled); goa_account_set_contacts_disabled (account, !contacts_enabled); g_signal_connect (account, "notify::mail-disabled", G_CALLBACK (goa_util_account_notify_property_cb), "MailEnabled"); g_signal_connect (account, "notify::calendar-disabled", G_CALLBACK (goa_util_account_notify_property_cb), "CalendarEnabled"); g_signal_connect (account, "notify::contacts-disabled", G_CALLBACK (goa_util_account_notify_property_cb), "ContactsEnabled"); } ret = TRUE; out: if (exchange != NULL) g_object_unref (exchange); if (contacts != NULL) g_object_unref (contacts); if (calendar != NULL) g_object_unref (calendar); if (mail != NULL) g_object_unref (mail); if (password_based != NULL) g_object_unref (password_based); return ret; }
static void storaged_linux_partition_table_init (StoragedLinuxPartitionTable *partition_table) { g_dbus_interface_skeleton_set_flags (G_DBUS_INTERFACE_SKELETON (partition_table), G_DBUS_INTERFACE_SKELETON_FLAGS_HANDLE_METHOD_INVOCATIONS_IN_THREAD); }
static void storage_logical_volume_init (StorageLogicalVolume *logical_volume) { g_dbus_interface_skeleton_set_flags (G_DBUS_INTERFACE_SKELETON (logical_volume), G_DBUS_INTERFACE_SKELETON_FLAGS_HANDLE_METHOD_INVOCATIONS_IN_THREAD); }