[tracker/wip/carlosg/sparql1.1: 21/56] libtracker-data: Use DBManager signal to setup DataManager-level iface stuff
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [tracker/wip/carlosg/sparql1.1: 21/56] libtracker-data: Use DBManager signal to setup DataManager-level iface stuff
- Date: Thu, 6 Jun 2019 11:17:56 +0000 (UTC)
commit 842e22e0a686b0ea2eaa946700c38917ddb5bb61
Author: Carlos Garnacho <carlosg gnome org>
Date: Mon Apr 22 13:14:16 2019 +0200
libtracker-data: Use DBManager signal to setup DataManager-level iface stuff
Instead of breaking the layering here. This will be useful to set up other
things than FTS in the future.
src/libtracker-data/tracker-data-manager.c | 15 ++++++++++++++-
src/libtracker-data/tracker-data-manager.h | 3 ---
src/libtracker-data/tracker-db-manager.c | 20 +++++++++++++++++---
3 files changed, 31 insertions(+), 7 deletions(-)
---
diff --git a/src/libtracker-data/tracker-data-manager.c b/src/libtracker-data/tracker-data-manager.c
index 7be107609..31e910a35 100644
--- a/src/libtracker-data/tracker-data-manager.c
+++ b/src/libtracker-data/tracker-data-manager.c
@@ -3846,7 +3846,7 @@ rebuild_fts_tokens (TrackerDataManager *manager,
tracker_db_manager_tokenizer_update (manager->db_manager);
}
-gboolean
+static gboolean
tracker_data_manager_init_fts (TrackerDBInterface *iface,
gboolean create)
{
@@ -3943,6 +3943,16 @@ update_ontology_last_modified (TrackerDataManager *manager,
}
}
+static void
+setup_interface_cb (TrackerDBManager *db_manager,
+ TrackerDBInterface *iface,
+ TrackerDataManager *data_manager)
+{
+#if HAVE_TRACKER_FTS
+ tracker_data_manager_init_fts (iface, FALSE);
+#endif
+}
+
static gboolean
tracker_data_manager_initable_init (GInitable *initable,
GCancellable *cancellable,
@@ -3997,6 +4007,9 @@ tracker_data_manager_initable_init (GInitable *initable,
return FALSE;
}
+ g_signal_connect (manager->db_manager, "setup-interface",
+ G_CALLBACK (setup_interface_cb), manager);
+
manager->first_time_index = is_first_time_index;
tracker_data_manager_update_status (manager, "Initializing data manager");
diff --git a/src/libtracker-data/tracker-data-manager.h b/src/libtracker-data/tracker-data-manager.h
index e250fb0ea..ef7dec4b9 100644
--- a/src/libtracker-data/tracker-data-manager.h
+++ b/src/libtracker-data/tracker-data-manager.h
@@ -78,9 +78,6 @@ TrackerDBInterface * tracker_data_manager_get_db_interface (TrackerDataManage
TrackerDBInterface * tracker_data_manager_get_writable_db_interface (TrackerDataManager *manager);
TrackerData * tracker_data_manager_get_data (TrackerDataManager *manager);
-gboolean tracker_data_manager_init_fts (TrackerDBInterface *interface,
- gboolean create);
-
GHashTable * tracker_data_manager_get_namespaces (TrackerDataManager *manager);
gboolean tracker_data_manager_create_graph (TrackerDataManager *manager,
diff --git a/src/libtracker-data/tracker-db-manager.c b/src/libtracker-data/tracker-db-manager.c
index 1226bfd26..1480972d4 100644
--- a/src/libtracker-data/tracker-db-manager.c
+++ b/src/libtracker-data/tracker-db-manager.c
@@ -148,6 +148,13 @@ struct _TrackerDBManager {
GThread *wal_thread;
};
+enum {
+ SETUP_INTERFACE,
+ N_SIGNALS
+};
+
+static guint signals[N_SIGNALS] = { 0 };
+
G_DEFINE_TYPE (TrackerDBManager, tracker_db_manager, G_TYPE_OBJECT)
static gboolean db_exec_no_reply (TrackerDBInterface *iface,
@@ -1065,9 +1072,7 @@ tracker_db_manager_get_db_interface (TrackerDBManager *db_manager)
TRUE, &internal_error);
if (interface) {
-#if HAVE_TRACKER_FTS
- tracker_data_manager_init_fts (interface, FALSE);
-#endif
+ g_signal_emit (db_manager, signals[SETUP_INTERFACE], 0, interface);
} else {
if (g_async_queue_length_unlocked (db_manager->interfaces) == 0) {
g_critical ("Error opening database: %s", internal_error->message);
@@ -1099,6 +1104,15 @@ tracker_db_manager_class_init (TrackerDBManagerClass *klass)
GObjectClass *object_class = G_OBJECT_CLASS (klass);
object_class->finalize = tracker_db_manager_finalize;
+
+ signals[SETUP_INTERFACE] =
+ g_signal_new ("setup-interface",
+ G_TYPE_FROM_CLASS (klass),
+ G_SIGNAL_RUN_LAST, 0,
+ NULL, NULL,
+ g_cclosure_marshal_VOID__OBJECT,
+ G_TYPE_NONE,
+ 1, TRACKER_TYPE_DB_INTERFACE);
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]