Exemplo n.º 1
0
static void
ppg_restart_task_channel_stopped (GObject      *object,
                                  GAsyncResult *result,
                                  gpointer      user_data)
{
	PpgRestartTaskPrivate *priv;
	PkConnection *conn = (PkConnection *)object;
	PpgRestartTask *restart = (PpgRestartTask *)user_data;
	PpgTask *task = (PpgTask *)user_data;
	GError *error = NULL;
	gint channel;

	g_return_if_fail(PK_IS_CONNECTION(conn));
	g_return_if_fail(PPG_IS_RESTART_TASK(restart));
	g_return_if_fail(PPG_IS_TASK(task));

	priv = restart->priv;

	if (!pk_connection_channel_stop_finish(conn, result, &error)) {
		ppg_task_fail(task, error);
		g_error_free(error);
		return;
	}

	g_object_get(priv->session,
	             "channel", &channel,
	             NULL);

	pk_connection_channel_start_async(conn, channel, NULL,
	                                  ppg_restart_task_channel_started,
	                                  task);
}
Exemplo n.º 2
0
/**
 * ppg_session_connection_connected:
 * @connection: (in): A #PkConnection.
 * @result: (in): A #GAsyncResult.
 * @user_data: (closure): User data for callback.
 *
 * Callback upon the connection connecting to the agent.
 *
 * Returns: None.
 * Side effects: None.
 */
static void
ppg_session_channel_stopped (GObject *object,
                             GAsyncResult *result,
                             gpointer user_data)
{
	PpgSession *session = user_data;
	PpgSessionPrivate *priv;
	GError *error = NULL;

	g_return_if_fail(PPG_IS_SESSION(session));

	priv = session->priv;

	if (!pk_connection_channel_stop_finish(priv->conn, result, &error)) {
		ppg_session_report_error(session, G_STRFUNC, error);
		g_error_free(error);
		return;

		/*
		 * FIXME: We need to make sure we handle this gracefully and stop
		 *        updating the UI. This goes for the rest of the states.
		 */
	}

	priv->state = PPG_SESSION_STOPPED;
	g_timer_stop(priv->timer);

	ppg_session_stop_position_notifier(session);

	g_signal_emit(session, signals[STOPPED], 0);
}