コード例 #1
0
ファイル: ppg-session.c プロジェクト: jjardon/perfkit
/**
 * ppg_session_channel_started:
 * @connection: (in): A #PkConnection.
 * @result: (in): A #GAsyncResult.
 * @user_data: (closure): User data for callback.
 *
 * Callback upon the channel starting.
 *
 * Returns: None.
 * Side effects: None.
 */
static void
ppg_session_channel_started (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_start_finish(priv->conn, result, &error)) {
		ppg_session_report_error(session, G_STRFUNC, error);
		g_error_free(error);
		return;
	}

	priv->state = PPG_SESSION_STARTED;
	priv->timer = g_timer_new();

	ppg_session_start_position_notifier(session);

	g_message("Channel %d started.", priv->channel);

	g_signal_emit(session, signals[STARTED], 0);
}
コード例 #2
0
ファイル: ppg-restart-task.c プロジェクト: jjardon/perfkit
static void
ppg_restart_task_channel_started (GObject      *object,
                                  GAsyncResult *result,
                                  gpointer      user_data)
{
	PkConnection *conn = (PkConnection *)object;
	PpgTask *task = (PpgTask *)user_data;
	GError *error = NULL;

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

	if (!pk_connection_channel_start_finish(conn, result, &error)) {
		ppg_task_finish_with_error(task, error);
		g_error_free(error);
		return;
	}

	ppg_task_finish(task);
}
コード例 #3
0
ファイル: ppg-restart-task.c プロジェクト: chergert/perfkit
static void
ppg_restart_task_channel_started (GObject      *object,
                                  GAsyncResult *result,
                                  gpointer      user_data)
{
	PkConnection *conn = (PkConnection *)object;
	PpgTask *task = (PpgTask *)user_data;
	GError *error = NULL;
	GTimeVal tv = { 0 };

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

	if (!pk_connection_channel_start_finish(conn, result, &tv, &error)) {
		/*
		 * TODO: Notify session of new start time?
		 */
		ppg_task_fail(task, error);
		g_error_free(error);
		return;
	}

	ppg_task_finish(task);
}