[tracker/live-config-changes: 4/6] TrackerMinerFS: Add tracker_miner_fs_force_recheck().
- From: Martyn James Russell <mr src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [tracker/live-config-changes: 4/6] TrackerMinerFS: Add tracker_miner_fs_force_recheck().
- Date: Tue, 2 Mar 2010 16:29:46 +0000 (UTC)
commit a454af1c59996e4854a93d6882ab62ff54e66ac8
Author: Carlos Garnacho <carlos lanedo com>
Date: Mon Mar 1 18:06:22 2010 +0100
TrackerMinerFS: Add tracker_miner_fs_force_recheck().
This new call forces recheck on any directory previously passed through
tracker_miner_fs_directory_add(). In addition, monitors are now also
removed during the (re)crawling phase if told by the implementation.
src/libtracker-miner/tracker-miner-fs.c | 37 ++++++++++++++++++++++++------
src/libtracker-miner/tracker-miner-fs.h | 3 ++
2 files changed, 32 insertions(+), 8 deletions(-)
---
diff --git a/src/libtracker-miner/tracker-miner-fs.c b/src/libtracker-miner/tracker-miner-fs.c
index e87fbd7..6a43aee 100644
--- a/src/libtracker-miner/tracker-miner-fs.c
+++ b/src/libtracker-miner/tracker-miner-fs.c
@@ -2310,6 +2310,11 @@ crawler_check_directory_cb (TrackerCrawler *crawler,
GINT_TO_POINTER (TRUE));
}
+ if (!should_check) {
+ /* Remove monitors if any */
+ tracker_monitor_remove (fs->private->monitor, file);
+ }
+
/* We _HAVE_ to check ALL directories because mtime updates
* are not guaranteed on parents on Windows AND we on Linux
* only the immediate parent directory mtime is updated, this
@@ -2328,21 +2333,22 @@ crawler_check_directory_contents_cb (TrackerCrawler *crawler,
gpointer user_data)
{
TrackerMinerFS *fs = user_data;
+ gboolean add_monitor = FALSE;
gboolean process;
g_signal_emit (fs, signals[CHECK_DIRECTORY_CONTENTS], 0, parent, children, &process);
if (process) {
- gboolean add_monitor;
-
g_signal_emit (fs, signals[MONITOR_DIRECTORY], 0, parent, &add_monitor);
+ }
- /* FIXME: Should we add here or when we process the queue in
- * the finished sig?
- */
- if (add_monitor) {
- tracker_monitor_add (fs->private->monitor, parent);
- }
+ /* FIXME: Should we add here or when we process the queue in
+ * the finished sig?
+ */
+ if (add_monitor) {
+ tracker_monitor_add (fs->private->monitor, parent);
+ } else {
+ tracker_monitor_remove (fs->private->monitor, parent);
}
return process;
@@ -2931,3 +2937,18 @@ tracker_miner_fs_get_parent_urn (TrackerMinerFS *fs,
return data->parent_urn;
}
+
+void
+tracker_miner_fs_force_recheck (TrackerMinerFS *fs)
+{
+ GList *directories;
+
+ g_return_if_fail (TRACKER_IS_MINER_FS (fs));
+
+ g_message ("Forcing re-check on all index directories");
+
+ directories = g_list_copy (fs->private->config_directories);
+ fs->private->directories = g_list_concat (fs->private->directories, directories);
+
+ crawl_directories_start (fs);
+}
diff --git a/src/libtracker-miner/tracker-miner-fs.h b/src/libtracker-miner/tracker-miner-fs.h
index 8ab3efe..4ff2ab2 100644
--- a/src/libtracker-miner/tracker-miner-fs.h
+++ b/src/libtracker-miner/tracker-miner-fs.h
@@ -109,6 +109,9 @@ G_CONST_RETURN gchar * tracker_miner_fs_get_urn (TrackerMinerFS *fs,
G_CONST_RETURN gchar * tracker_miner_fs_get_parent_urn (TrackerMinerFS *fs,
GFile *file);
+void tracker_miner_fs_force_recheck (TrackerMinerFS *fs);
+
+
G_END_DECLS
#endif /* __LIBTRACKERMINER_MINER_FS_H__ */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]