[tracker] libtracker-miner: Add TRACKER_DIRECTORY_FLAG_CHECK_DELETED flag



commit f1928f41cfe9cb43d494f616ed4bda52a14f40b4
Author: Carlos Garnacho <carlosg gnome org>
Date:   Tue May 3 01:00:33 2016 +0200

    libtracker-miner: Add TRACKER_DIRECTORY_FLAG_CHECK_DELETED flag
    
    This forces a check for deleted contents on all folders, as if
    the folder mtime changed. Will be useful to recheck indexed directories'
    contents after configuration changes.

 src/libtracker-miner/tracker-file-notifier.c |    5 ++++-
 src/libtracker-miner/tracker-miner-enums.h   |    6 +++++-
 2 files changed, 9 insertions(+), 2 deletions(-)
---
diff --git a/src/libtracker-miner/tracker-file-notifier.c b/src/libtracker-miner/tracker-file-notifier.c
index 33e3934..49f8aa8 100644
--- a/src/libtracker-miner/tracker-file-notifier.c
+++ b/src/libtracker-miner/tracker-file-notifier.c
@@ -857,6 +857,7 @@ sparql_files_query_cb (GObject      *object,
        TrackerSparqlCursor *cursor;
        GError *error = NULL;
        GFile *directory;
+       guint flags;
 
        cursor = tracker_sparql_connection_query_finish (TRACKER_SPARQL_CONNECTION (object),
                                                         result, &error);
@@ -876,8 +877,10 @@ sparql_files_query_cb (GObject      *object,
 
        file_notifier_traverse_tree (notifier, data->max_depth);
        directory = priv->current_index_root->current_dir;
+       flags = priv->current_index_root->flags;
 
-       if (file_notifier_is_directory_modified (notifier, directory)) {
+       if ((flags & TRACKER_DIRECTORY_FLAG_CHECK_DELETED) != 0 ||
+           file_notifier_is_directory_modified (notifier, directory)) {
                /* The directory has updated its mtime, this means something
                 * was either added or removed in the mean time. Crawling
                 * will always find all newly added files. But still, we
diff --git a/src/libtracker-miner/tracker-miner-enums.h b/src/libtracker-miner/tracker-miner-enums.h
index 932fa77..6bfad97 100644
--- a/src/libtracker-miner/tracker-miner-enums.h
+++ b/src/libtracker-miner/tracker-miner-enums.h
@@ -53,6 +53,9 @@ G_BEGIN_DECLS
  * server somewhere), use the #TRACKER_DIRECTORY_FLAG_NO_STAT flag.
  * The default is to use stat() and assume we're mining a local or
  * mounted file system.
+ * @TRACKER_DIRECTORY_FLAG_CHECK_DELETED: Forces checks on deleted
+ * contents. This is most usually optimized away unless directory
+ * mtime changes indicate there could be deleted content.
  *
  * Flags used when adding a new directory to be indexed in the
  * #TrackerIndexingTree, #TrackerDataProvider and #TrackerEnumerator.
@@ -65,7 +68,8 @@ typedef enum {
        TRACKER_DIRECTORY_FLAG_IGNORE          = 1 << 4,
        TRACKER_DIRECTORY_FLAG_PRESERVE        = 1 << 5,
        TRACKER_DIRECTORY_FLAG_PRIORITY        = 1 << 6,
-       TRACKER_DIRECTORY_FLAG_NO_STAT         = 1 << 7
+       TRACKER_DIRECTORY_FLAG_NO_STAT         = 1 << 7,
+       TRACKER_DIRECTORY_FLAG_CHECK_DELETED   = 1 << 8,
 } TrackerDirectoryFlags;
 
 /**


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