static void async_update_array_callback (GObject *source_object, GAsyncResult *result, gpointer user_data) { AsyncData *data = user_data; GError *error = NULL; GPtrArray *errors; errors = tracker_sparql_connection_update_array_finish (connection, result, &error); g_assert_no_error (error); g_ptr_array_unref (errors); g_main_loop_quit (data->main_loop); }
static void decorator_commit_cb (GObject *object, GAsyncResult *result, gpointer user_data) { TrackerSparqlConnection *conn; TrackerDecoratorPrivate *priv; TrackerDecorator *decorator; GError *error = NULL; GPtrArray *errors; guint i; decorator = user_data; priv = decorator->priv; conn = TRACKER_SPARQL_CONNECTION (object); errors = tracker_sparql_connection_update_array_finish (conn, result, &error); if (error) { g_warning ("There was an error pushing metadata: %s\n", error->message); } if (errors) { for (i = 0; i < errors->len; i++) { SparqlUpdate *update; GError *child_error; child_error = g_ptr_array_index (errors, i); update = &g_array_index (priv->commit_buffer, SparqlUpdate, i); if (!child_error) continue; decorator_blacklist_add (decorator, update->id); item_warn (conn, update->id, update->sparql, child_error); } g_ptr_array_unref (errors); } g_clear_pointer (&priv->commit_buffer, (GDestroyNotify) g_array_unref); if (!decorator_check_commit (decorator)) decorator_cache_next_items (decorator); }