[grilo-plugins/wip/carlosg/tracker3: 5/40] tracker3: Add store-path configuration option



commit ab92a874972ca862173fcf81f59d2fa948157ab9
Author: Carlos Garnacho <carlosg gnome org>
Date:   Mon May 11 13:16:26 2020 +0200

    tracker3: Add store-path configuration option
    
    So it is possible to open a specific store. Queries will be updated
    to use the org.freedesktop.Tracker3.Miner.Files service where necessary.

 src/tracker3/grl-tracker-source-priv.h |  1 +
 src/tracker3/grl-tracker.c             | 17 +++++++++++++----
 2 files changed, 14 insertions(+), 4 deletions(-)
---
diff --git a/src/tracker3/grl-tracker-source-priv.h b/src/tracker3/grl-tracker-source-priv.h
index 42e50b5b..f4954965 100644
--- a/src/tracker3/grl-tracker-source-priv.h
+++ b/src/tracker3/grl-tracker-source-priv.h
@@ -81,5 +81,6 @@ extern GrlTrackerCache *grl_tracker_item_cache;
 
 /* tracker plugin config */
 extern gboolean grl_tracker_show_documents;
+extern gchar *grl_tracker_store_path;
 
 #endif /* _GRL_TRACKER_SOURCE_PRIV_H_ */
diff --git a/src/tracker3/grl-tracker.c b/src/tracker3/grl-tracker.c
index 64d5e3ee..3b476c33 100644
--- a/src/tracker3/grl-tracker.c
+++ b/src/tracker3/grl-tracker.c
@@ -58,6 +58,7 @@ GrlTrackerQueue *grl_tracker_queue = NULL;
 
 /* tracker plugin config */
 gboolean grl_tracker_show_documents    = FALSE;
+gchar *grl_tracker_store_path = NULL;
 
 /* =================== Tracker Plugin  =============== */
 
@@ -102,7 +103,8 @@ grl_tracker3_plugin_init (GrlRegistry *registry,
 {
   GrlConfig *config;
   gint config_count;
-  GFile *ontology;
+  GFile *store = NULL, *ontology;
+  TrackerSparqlConnectionFlags flags = TRACKER_SPARQL_CONNECTION_FLAGS_NONE;
 
   GRL_LOG_DOMAIN_INIT (tracker_general_log_domain, "tracker3-general");
 
@@ -126,18 +128,25 @@ grl_tracker3_plugin_init (GrlRegistry *registry,
 
     grl_tracker_show_documents =
       grl_config_get_boolean (config, "show-documents");
+    grl_tracker_store_path =
+      grl_config_get_string (config, "store-path");
   }
 
   grl_tracker_plugin_init_cancel = g_cancellable_new ();
+  if (grl_tracker_store_path) {
+    store = g_file_new_for_path (grl_tracker_store_path);
+    flags = TRACKER_SPARQL_CONNECTION_FLAGS_READONLY;
+  }
+
   ontology = tracker_sparql_get_ontology_nepomuk ();
-  tracker_sparql_connection_new_async (TRACKER_SPARQL_CONNECTION_FLAGS_NONE,
-                                       NULL,
+  tracker_sparql_connection_new_async (flags,
+                                       store,
                                        ontology,
                                        grl_tracker_plugin_init_cancel,
                                        (GAsyncReadyCallback) tracker_new_connection_cb,
                                        plugin);
+  g_clear_object (&store);
   g_object_unref (ontology);
-
   return TRUE;
 }
 


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