[tracker/libtracker-miner] TrackerMinerFiles: Set nie:dataSource to all files.
- From: Carlos Garnacho <carlosg src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [tracker/libtracker-miner] TrackerMinerFiles: Set nie:dataSource to all files.
- Date: Mon, 24 Aug 2009 12:53:33 +0000 (UTC)
commit be748c860a628dc1d4be2c72fcb313a4f61449ee
Author: Carlos Garnacho <carlos lanedo com>
Date: Mon Aug 24 11:34:38 2009 +0200
TrackerMinerFiles: Set nie:dataSource to all files.
src/tracker-miner-fs/tracker-miner-files.c | 43 ++++++++++++++++++++++++++++
1 files changed, 43 insertions(+), 0 deletions(-)
---
diff --git a/src/tracker-miner-fs/tracker-miner-files.c b/src/tracker-miner-fs/tracker-miner-files.c
index 46a8c1e..29ea148 100644
--- a/src/tracker-miner-fs/tracker-miner-files.c
+++ b/src/tracker-miner-fs/tracker-miner-files.c
@@ -22,6 +22,7 @@
#include "tracker-miner-files.h"
#include "tracker-config.h"
#include <libtracker-common/tracker-storage.h>
+#include <libtracker-common/tracker-ontology.h>
#define TRACKER_MINER_FILES_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TRACKER_TYPE_MINER_FILES, TrackerMinerFilesPrivate))
@@ -276,6 +277,46 @@ tracker_miner_files_monitor_directory (TrackerMinerProcess *miner,
return tracker_config_get_enable_monitors (priv->config);
}
+static void
+item_add_to_datasource (TrackerMinerFiles *miner,
+ GFile *file,
+ TrackerSparqlBuilder *sparql)
+{
+ TrackerMinerFilesPrivate *priv;
+ const gchar *removable_device_udi;
+
+ priv = TRACKER_MINER_FILES_GET_PRIVATE (miner);
+
+#ifdef HAVE_HAL
+ removable_device_udi = tracker_storage_get_volume_udi_for_file (priv->storage, file);
+#else
+ removable_device_udi = NULL;
+#endif
+
+ if (removable_device_udi) {
+ gchar *removable_device_urn;
+
+ removable_device_urn = g_strdup_printf (TRACKER_DATASOURCE_URN_PREFIX "%s",
+ removable_device_udi);
+
+ tracker_sparql_builder_subject_iri (sparql, removable_device_urn);
+ tracker_sparql_builder_predicate (sparql, "a");
+ tracker_sparql_builder_object (sparql, "tracker:Volume");
+
+ tracker_sparql_builder_predicate (sparql, "nie:dataSource");
+ tracker_sparql_builder_object_iri (sparql, removable_device_urn);
+
+ g_free (removable_device_urn);
+ } else {
+ tracker_sparql_builder_subject_iri (sparql, TRACKER_NON_REMOVABLE_MEDIA_DATASOURCE_URN);
+ tracker_sparql_builder_predicate (sparql, "a");
+ tracker_sparql_builder_object (sparql, "tracker:Volume");
+
+ tracker_sparql_builder_predicate (sparql, "nie:dataSource");
+ tracker_sparql_builder_object_iri (sparql, TRACKER_NON_REMOVABLE_MEDIA_DATASOURCE_URN);
+ }
+}
+
static gboolean
tracker_miner_files_process_file (TrackerMinerProcess *miner,
GFile *file,
@@ -343,6 +384,8 @@ tracker_miner_files_process_file (TrackerMinerProcess *miner,
tracker_sparql_builder_predicate (sparql, "nfo:fileLastAccessed");
tracker_sparql_builder_object_date (sparql, (time_t *) &time_);
+ item_add_to_datasource (TRACKER_MINER_FILES (miner), file, sparql);
+
/* FIXME: Missing embedded data and text */
g_free (uri);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]