[tracker] TrackerMinerFiles: Hook check-directory-contents to configuration.
- From: Carlos Garnacho <carlosg src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [tracker] TrackerMinerFiles: Hook check-directory-contents to configuration.
- Date: Fri, 11 Sep 2009 11:31:59 +0000 (UTC)
commit 7d11c49c80e9208271acb635f806ac04a9a6bd23
Author: Carlos Garnacho <carlos lanedo com>
Date: Fri Sep 11 13:29:10 2009 +0200
TrackerMinerFiles: Hook check-directory-contents to configuration.
src/tracker-miner-fs/tracker-miner-files.c | 42 ++++++++++++++++++++++++++++
1 files changed, 42 insertions(+), 0 deletions(-)
---
diff --git a/src/tracker-miner-fs/tracker-miner-files.c b/src/tracker-miner-fs/tracker-miner-files.c
index 1eb48ac..fe7f68a 100644
--- a/src/tracker-miner-fs/tracker-miner-files.c
+++ b/src/tracker-miner-fs/tracker-miner-files.c
@@ -129,6 +129,9 @@ static gboolean miner_files_check_file (TrackerMinerFS *fs,
GFile *file);
static gboolean miner_files_check_directory (TrackerMinerFS *fs,
GFile *file);
+static gboolean miner_files_check_directory_contents (TrackerMinerFS *fs,
+ GFile *parent,
+ GList *children);
static gboolean miner_files_process_file (TrackerMinerFS *fs,
GFile *file,
TrackerSparqlBuilder *sparql,
@@ -153,6 +156,7 @@ tracker_miner_files_class_init (TrackerMinerFilesClass *klass)
miner_fs_class->check_file = miner_files_check_file;
miner_fs_class->check_directory = miner_files_check_directory;
+ miner_fs_class->check_directory_contents = miner_files_check_directory_contents;
miner_fs_class->monitor_directory = miner_files_monitor_directory;
miner_fs_class->process_file = miner_files_process_file;
@@ -1010,6 +1014,44 @@ done:
}
static gboolean
+miner_files_check_directory_contents (TrackerMinerFS *fs,
+ GFile *parent,
+ GList *children)
+{
+ TrackerMinerFiles *mf;
+ GSList *ignored_content, *l;
+
+ mf = TRACKER_MINER_FILES (fs);
+ ignored_content = tracker_config_get_ignored_directories_with_content (mf->private->config);
+
+ while (children) {
+ gchar *basename;
+
+ basename = g_file_get_basename (children->data);
+
+ for (l = ignored_content; l; l = l->next) {
+ if (g_strcmp0 (basename, l->data) == 0) {
+ gchar *parent_uri;
+
+ parent_uri = g_file_get_uri (parent);
+ g_debug ("Directory '%s' ignored since it contains a file named '%s'",
+ parent_uri, basename);
+
+ g_free (parent_uri);
+ g_free (basename);
+
+ return FALSE;
+ }
+ }
+
+ children = children->next;
+ g_free (basename);
+ }
+
+ return TRUE;
+}
+
+static gboolean
miner_files_monitor_directory (TrackerMinerFS *fs,
GFile *file)
{
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]