static void async_refresh_result_ready (GObject *source_object, GAsyncResult *result, gpointer user_data) { ECalClient *cal_client; GError *error = NULL; GMainLoop *loop = (GMainLoop *) user_data; cal_client = E_CAL_CLIENT (source_object); if (!e_client_refresh_finish (E_CLIENT (cal_client), result, &error)) g_error ("refresh finish: %s", error->message); g_main_loop_quit (loop); }
/* asynchronous callback with a main-loop running */ static void async_refresh_result_ready (GObject *source_object, GAsyncResult *result, gpointer user_data) { ECalClient *cal_client; GError *error = NULL; cal_client = E_CAL_CLIENT (source_object); if (!e_client_refresh_finish (E_CLIENT (cal_client), result, &error)) { report_error ("refresh finish", &error); stop_main_loop (1); return; } stop_main_loop (0); }
static void address_book_refresh_done_cb (GObject *source_object, GAsyncResult *result, gpointer user_data) { EClient *client; ESource *source; EActivity *activity; EAlertSink *alert_sink; const gchar *display_name; GError *local_error = NULL; g_return_if_fail (E_IS_CLIENT (source_object)); client = E_CLIENT (source_object); source = e_client_get_source (client); activity = user_data; e_client_refresh_finish (client, result, &local_error); alert_sink = e_activity_get_alert_sink (activity); display_name = e_source_get_display_name (source); if (e_activity_handle_cancellation (activity, local_error)) { /* nothing to do */ } else if (local_error != NULL) { e_alert_submit ( alert_sink, "addressbook:refresh-error", display_name, local_error->message, NULL); } else { e_activity_set_state (activity, E_ACTIVITY_COMPLETED); } g_clear_object (&activity); g_clear_error (&local_error); }