/** * tracker_extract_info_new: * @file: a #GFile * @mimetype: mimetype for @file * @graph: SPARQL graph used for inserting data * * Returns a newly created #TrackerExtractInfo * * Returns: (transfer full): (boxed): A newly allocated #TrackerExtractInfo * * Since: 0.12 **/ TrackerExtractInfo * tracker_extract_info_new (GFile *file, const gchar *mimetype, const gchar *graph) { TrackerExtractInfo *info; g_return_val_if_fail (G_IS_FILE (file), NULL); info = g_slice_new0 (TrackerExtractInfo); info->file = g_object_ref (file); info->mimetype = g_strdup (mimetype); info->graph = g_strdup (graph); info->preupdate = tracker_sparql_builder_new_update (); info->postupdate = tracker_sparql_builder_new_update (); info->metadata = tracker_sparql_builder_new_embedded_insert (); info->where_clause = NULL; #ifdef HAVE_LIBMEDIAART info->media_art_process = NULL; #endif info->ref_count = 1; return info; }
static TrackerDecoratorInfo * tracker_decorator_info_new (TrackerDecorator *decorator, TrackerSparqlCursor *cursor) { TrackerSparqlBuilder *sparql; TrackerDecoratorInfo *info; GCancellable *cancellable; info = g_slice_new0 (TrackerDecoratorInfo); info->urn = g_strdup (tracker_sparql_cursor_get_string (cursor, 0, NULL)); info->id = tracker_sparql_cursor_get_integer (cursor, 1); info->url = g_strdup (tracker_sparql_cursor_get_string (cursor, 2, NULL)); info->mimetype = g_strdup (tracker_sparql_cursor_get_string (cursor, 3, NULL)); info->ref_count = 1; cancellable = g_cancellable_new (); info->task = g_task_new (decorator, cancellable, decorator_task_done, info); g_object_unref (cancellable); sparql = tracker_sparql_builder_new_update (); g_task_set_task_data (info->task, sparql, (GDestroyNotify) g_object_unref); return info; }
static void feed_removed (FeedSettings *setts, gchar *id, TrackerSparqlConnection *tracker_client) { TrackerSparqlBuilder *sparql; sparql = tracker_sparql_builder_new_update (); tracker_sparql_builder_delete_open (sparql, NULL); tracker_sparql_builder_subject_iri (sparql, id); tracker_sparql_builder_predicate (sparql, "a"); tracker_sparql_builder_object (sparql, "rdfs:Resource"); tracker_sparql_builder_delete_close (sparql); tracker_sparql_builder_where_open (sparql); tracker_sparql_builder_subject_iri (sparql, id); tracker_sparql_builder_predicate (sparql, "a"); tracker_sparql_builder_object (sparql, "rdfs:Resource"); tracker_sparql_builder_where_close (sparql); tracker_sparql_connection_update (tracker_client, tracker_sparql_builder_get_result (sparql), 0, NULL, NULL); g_object_unref (sparql); }
/* If a reset is requested, we will remove from the store all items previously * inserted by the tracker-miner-applications, this is: * (a) all elements which are nfo:softwareIcon of a given nfo:Software * (b) all nfo:Software in our graph (includes both applications and maemo applets) * (c) all elements which are nfo:softwareCategoryIcon of a given nfo:SoftwareCategory * (d) all nfo:SoftwareCategory in our graph */ static void miner_applications_reset (TrackerMiner *miner) { GError *error = NULL; TrackerSparqlBuilder *sparql; sparql = tracker_sparql_builder_new_update (); /* (a) all elements which are nfo:softwareIcon of a given nfo:Software */ tracker_sparql_builder_delete_open (sparql, TRACKER_OWN_GRAPH_URN); tracker_sparql_builder_subject_variable (sparql, "icon"); tracker_sparql_builder_predicate (sparql, "a"); tracker_sparql_builder_object (sparql, "rdfs:Resource"); tracker_sparql_builder_delete_close (sparql); tracker_sparql_builder_where_open (sparql); tracker_sparql_builder_subject_variable (sparql, "software"); tracker_sparql_builder_predicate (sparql, "a"); tracker_sparql_builder_object (sparql, "nfo:Software"); tracker_sparql_builder_subject_variable (sparql, "icon"); tracker_sparql_builder_predicate (sparql, "nfo:softwareIcon"); tracker_sparql_builder_object_variable (sparql, "software"); tracker_sparql_builder_where_close (sparql); /* (b) all nfo:Software in our graph (includes both applications and maemo applets) */ tracker_sparql_builder_delete_open (sparql, TRACKER_OWN_GRAPH_URN); tracker_sparql_builder_subject_variable (sparql, "software"); tracker_sparql_builder_predicate (sparql, "a"); tracker_sparql_builder_object (sparql, "rdfs:Resource"); tracker_sparql_builder_delete_close (sparql); tracker_sparql_builder_where_open (sparql); tracker_sparql_builder_subject_variable (sparql, "software"); tracker_sparql_builder_predicate (sparql, "a"); tracker_sparql_builder_object (sparql, "nfo:Software"); tracker_sparql_builder_where_close (sparql); /* (c) all elements which are nfo:softwareCategoryIcon of a given nfo:SoftwareCategory */ tracker_sparql_builder_delete_open (sparql, TRACKER_OWN_GRAPH_URN); tracker_sparql_builder_subject_variable (sparql, "icon"); tracker_sparql_builder_predicate (sparql, "a"); tracker_sparql_builder_object (sparql, "rdfs:Resource"); tracker_sparql_builder_delete_close (sparql); tracker_sparql_builder_where_open (sparql); tracker_sparql_builder_subject_variable (sparql, "category"); tracker_sparql_builder_predicate (sparql, "a"); tracker_sparql_builder_object (sparql, "nfo:SoftwareCategory"); tracker_sparql_builder_subject_variable (sparql, "icon"); tracker_sparql_builder_predicate (sparql, "nfo:softwareCategoryIcon"); tracker_sparql_builder_object_variable (sparql, "category"); tracker_sparql_builder_where_close (sparql); /* (d) all nfo:SoftwareCategory in our graph */ tracker_sparql_builder_delete_open (sparql, TRACKER_OWN_GRAPH_URN); tracker_sparql_builder_subject_variable (sparql, "category"); tracker_sparql_builder_predicate (sparql, "a"); tracker_sparql_builder_object (sparql, "rdfs:Resource"); tracker_sparql_builder_delete_close (sparql); tracker_sparql_builder_where_open (sparql); tracker_sparql_builder_subject_variable (sparql, "category"); tracker_sparql_builder_predicate (sparql, "a"); tracker_sparql_builder_object (sparql, "nfo:SoftwareCategory"); tracker_sparql_builder_where_close (sparql); /* Execute a sync update, we don't want the apps miner to start before * we finish this. */ tracker_sparql_connection_update (tracker_miner_get_connection (miner), tracker_sparql_builder_get_result (sparql), G_PRIORITY_HIGH, NULL, &error); if (error) { /* Some error happened performing the query, not good */ g_critical ("Couldn't reset mined applications: %s", error ? error->message : "unknown error"); g_error_free (error); } g_object_unref (sparql); }