[tracker/libtracker-miner] Add API for specifying which files/dirs should TrackerMinerCrawler process.



commit 51ee297525fe3ec02045998c68d7cd7dc257440a
Author: Carlos Garnacho <carlos lanedo com>
Date:   Fri Jul 31 15:48:49 2009 +0200

    Add API for specifying which files/dirs should TrackerMinerCrawler process.
    
    At the moment there are some empty stubs, depending on the changes to
    TrackerProcessor.

 src/libtracker-miner/tracker-miner-crawler.c |   45 ++++++++++++++++++++++++++
 src/libtracker-miner/tracker-miner-crawler.h |    9 +++++
 2 files changed, 54 insertions(+), 0 deletions(-)
---
diff --git a/src/libtracker-miner/tracker-miner-crawler.c b/src/libtracker-miner/tracker-miner-crawler.c
index 1a6aeb1..65edcd4 100644
--- a/src/libtracker-miner/tracker-miner-crawler.c
+++ b/src/libtracker-miner/tracker-miner-crawler.c
@@ -29,11 +29,20 @@
 #define TRACKER_MINER_CRAWLER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TRACKER_TYPE_MINER_CRAWLER, TrackerMinerCrawlerPrivate))
 
 typedef struct TrackerMinerCrawlerPrivate TrackerMinerCrawlerPrivate;
+typedef struct DirectoryData DirectoryData;
+
+struct DirectoryData {
+	GFile *dir;
+	guint monitor : 1;
+	guint recurse : 1;
+};
 
 struct TrackerMinerCrawlerPrivate {
 	TrackerConfig *config;
 	TrackerStorage *storage;
 	TrackerProcessor *processor;
+
+	GArray *dirs;
 };
 
 static void tracker_miner_crawler_finalize (GObject *object);
@@ -73,6 +82,8 @@ tracker_miner_crawler_init (TrackerMinerCrawler *miner)
 	priv->storage = tracker_storage_new ();
 
 	priv->processor = tracker_processor_new (priv->config, priv->storage);
+
+	priv->dirs = g_array_new (FALSE, TRUE, sizeof (DirectoryData));
 }
 
 static void
@@ -92,3 +103,37 @@ tracker_miner_crawler_started (TrackerMiner *miner)
 
 	tracker_processor_start (priv->processor);
 }
+
+/* Public API */
+void
+tracker_miner_crawler_add_directory (TrackerMinerCrawler *miner,
+				     const gchar         *directory_uri,
+				     gboolean             monitor,
+				     gboolean             recurse)
+{
+	TrackerMinerCrawlerPrivate *priv;
+	DirectoryData dir_data;
+
+	g_return_if_fail (TRACKER_IS_MINER_CRAWLER (miner));
+	g_return_if_fail (directory_uri != NULL);
+
+	priv = miner->_priv;
+
+	dir_data.dir = g_file_new_for_uri (directory_uri);
+	dir_data.monitor = (monitor == TRUE);
+	dir_data.recurse = (recurse == TRUE);
+
+	g_array_append_val (priv->dirs, dir_data);
+}
+
+void
+tracker_miner_crawler_set_ignore_directory_patterns (TrackerMinerCrawler *miner,
+						     GList               *patterns)
+{
+}
+
+void
+tracker_miner_crawler_set_ignore_file_patterns (TrackerMinerCrawler *miner,
+						GList               *patterns)
+{
+}
diff --git a/src/libtracker-miner/tracker-miner-crawler.h b/src/libtracker-miner/tracker-miner-crawler.h
index b435cb4..6d76cf5 100644
--- a/src/libtracker-miner/tracker-miner-crawler.h
+++ b/src/libtracker-miner/tracker-miner-crawler.h
@@ -50,6 +50,15 @@ struct TrackerMinerCrawlerClass {
 
 GType    tracker_miner_crawler_get_type    (void) G_GNUC_CONST;
 
+void     tracker_miner_crawler_add_directory (TrackerMinerCrawler *miner,
+					      const gchar         *directory_uri,
+					      gboolean             monitor,
+					      gboolean             recurse);
+
+void     tracker_miner_crawler_set_ignore_directory_patterns (TrackerMinerCrawler *miner,
+							      GList               *patterns);
+void     tracker_miner_crawler_set_ignore_file_patterns      (TrackerMinerCrawler *miner,
+							      GList               *patterns);
 
 G_END_DECLS
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]