/** * g_dbus_server_start: * @server: A #GDBusServer. * * Starts @server. * * Since: 2.26 */ void g_dbus_server_start (GDBusServer *server) { g_return_if_fail (G_IS_DBUS_SERVER (server)); if (server->active) return; /* Right now we don't have any transport not using the listener... */ g_assert (server->is_using_listener); g_socket_service_start (G_SOCKET_SERVICE (server->listener)); server->active = TRUE; g_object_notify (G_OBJECT (server), "active"); }
/** * g_dbus_server_stop: * @server: A #GDBusServer. * * Stops @server. * * Since: 2.26 */ void g_dbus_server_stop (GDBusServer *server) { g_return_if_fail (G_IS_DBUS_SERVER (server)); if (!server->active) return; /* Right now we don't have any transport not using the listener... */ g_assert (server->is_using_listener); g_assert (server->run_signal_handler_id > 0); g_signal_handler_disconnect (server->listener, server->run_signal_handler_id); server->run_signal_handler_id = 0; g_socket_service_stop (G_SOCKET_SERVICE (server->listener)); server->active = FALSE; g_object_notify (G_OBJECT (server), "active"); }
static gboolean ide_worker_manager_new_connection_cb (IdeWorkerManager *self, GDBusConnection *connection, GDBusServer *server) { GCredentials *credentials; GHashTableIter iter; gpointer key, value; IDE_ENTRY; g_assert (IDE_IS_WORKER_MANAGER (self)); g_assert (G_IS_DBUS_CONNECTION (connection)); g_assert (G_IS_DBUS_SERVER (server)); g_dbus_connection_set_exit_on_close (connection, FALSE); credentials = g_dbus_connection_get_peer_credentials (connection); if ((credentials == NULL) || (-1 == g_credentials_get_unix_pid (credentials, NULL))) IDE_RETURN (FALSE); g_hash_table_iter_init (&iter, self->plugin_name_to_worker); while (g_hash_table_iter_next (&iter, &key, &value)) { IdeWorkerProcess *process = value; if (ide_worker_process_matches_credentials (process, credentials)) { ide_worker_process_set_connection (process, connection); IDE_RETURN (TRUE); } } IDE_RETURN (FALSE); }
/** * g_dbus_server_is_active: * @server: A #GDBusServer. * * Gets whether @server is active. * * Returns: %TRUE if server is active, %FALSE otherwise. * * Since: 2.26 */ gboolean g_dbus_server_is_active (GDBusServer *server) { g_return_val_if_fail (G_IS_DBUS_SERVER (server), G_DBUS_SERVER_FLAGS_NONE); return server->active; }
/** * g_dbus_server_get_flags: * @server: A #GDBusServer. * * Gets the flags for @server. * * Returns: A set of flags from the #GDBusServerFlags enumeration. * * Since: 2.26 */ GDBusServerFlags g_dbus_server_get_flags (GDBusServer *server) { g_return_val_if_fail (G_IS_DBUS_SERVER (server), G_DBUS_SERVER_FLAGS_NONE); return server->flags; }
/** * g_dbus_server_get_guid: * @server: A #GDBusServer. * * Gets the GUID for @server. * * Returns: A D-Bus GUID. Do not free this string, it is owned by @server. * * Since: 2.26 */ const gchar * g_dbus_server_get_guid (GDBusServer *server) { g_return_val_if_fail (G_IS_DBUS_SERVER (server), NULL); return server->guid; }
/** * g_dbus_server_get_client_address: * @server: A #GDBusServer. * * Gets a D-Bus address string that can be used by clients to connect * to @server. * * Returns: A D-Bus address string. Do not free, the string is owned * by @server. * * Since: 2.26 */ const gchar * g_dbus_server_get_client_address (GDBusServer *server) { g_return_val_if_fail (G_IS_DBUS_SERVER (server), NULL); return server->client_address; }