/** * 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); }
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); }
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); }