static void rejilla_search_beagle_hit_substracted_cb (BeagleQuery *query, BeagleHitsSubtractedResponse *response, RejillaSearchBeagle *search) { GSList *list, *iter; RejillaSearchBeaglePrivate *priv; priv = REJILLA_SEARCH_BEAGLE_PRIVATE (search); list = beagle_hits_subtracted_response_get_uris (response); for (iter = list; iter; iter = iter->next) { GSList *next, *hit_iter; const gchar *removed_uri; removed_uri = iter->data; /* see if it isn't in the hits that are still waiting */ for (hit_iter = priv->hits; hit_iter; hit_iter = next) { BeagleHit *hit; const char *hit_uri; next = hit_iter->next; hit = hit_iter->data; hit_uri = beagle_hit_get_uri (hit); if (!strcmp (hit_uri, removed_uri)) { priv->hits = g_slist_remove (priv->hits, hit); rejilla_search_engine_hit_removed (REJILLA_SEARCH_ENGINE (search), hit); beagle_hit_unref (hit); } } } }
static void beagle_hits_added (BeagleQuery *query, BeagleHitsAddedResponse *response, NautilusSearchEngineBeagle *engine) { GSList *hits, *list; GList *hit_uris; const char *uri; hit_uris = NULL; hits = beagle_hits_added_response_get_hits (response); for (list = hits; list != NULL; list = list->next) { BeagleHit *hit = BEAGLE_HIT (list->data); uri = beagle_hit_get_uri (hit); if (engine->details->current_query_uri_prefix && !g_str_has_prefix (uri, engine->details->current_query_uri_prefix)) { continue; } hit_uris = g_list_prepend (hit_uris, (char *)uri); } nautilus_search_engine_hits_added (NAUTILUS_SEARCH_ENGINE (engine), hit_uris); g_list_free (hit_uris); }
static const gchar * rejilla_search_beagle_uri_from_hit (RejillaSearchEngine *engine, gpointer hit) { return beagle_hit_get_uri (BEAGLE_HIT (hit)); }