summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarlos Garnacho <carlosg@gnome.org>2021-04-03 15:43:16 +0200
committerCarlos Garnacho <carlosg@gnome.org>2022-02-10 23:29:29 +0100
commit0186235b66aedf6401d24c5263415bbb6409335f (patch)
tree726573e33c849d97c9337fd26f3c4d7a8667813d
parent54119deb3ac487d867041b09ef351c386547f4cd (diff)
downloadtracker-0186235b66aedf6401d24c5263415bbb6409335f.tar.gz
libtracker-data: Add private API to map local connections
These will be available via special private:$handle_name URIs.
-rw-r--r--src/libtracker-data/tracker-data-manager.c24
-rw-r--r--src/libtracker-data/tracker-data-manager.h3
2 files changed, 21 insertions, 6 deletions
diff --git a/src/libtracker-data/tracker-data-manager.c b/src/libtracker-data/tracker-data-manager.c
index ca51c9e4f..3038105c9 100644
--- a/src/libtracker-data/tracker-data-manager.c
+++ b/src/libtracker-data/tracker-data-manager.c
@@ -150,6 +150,9 @@ static void
tracker_data_manager_init (TrackerDataManager *manager)
{
manager->generation = 1;
+ manager->cached_connections =
+ g_hash_table_new_full (g_str_hash, g_str_equal,
+ g_free, g_object_unref);
g_mutex_init (&manager->connections_lock);
g_mutex_init (&manager->graphs_lock);
}
@@ -5423,12 +5426,6 @@ tracker_data_manager_get_remote_connection (TrackerDataManager *data_manager,
g_mutex_lock (&data_manager->connections_lock);
- if (!data_manager->cached_connections) {
- data_manager->cached_connections =
- g_hash_table_new_full (g_str_hash, g_str_equal,
- g_free, g_object_unref);
- }
-
connection = g_hash_table_lookup (data_manager->cached_connections, uri);
if (!connection) {
@@ -5497,3 +5494,18 @@ fail:
return connection;
}
+
+void
+tracker_data_manager_map_connection (TrackerDataManager *data_manager,
+ const gchar *handle_name,
+ TrackerSparqlConnection *connection)
+{
+ gchar *uri;
+
+ uri = g_strdup_printf ("private:%s", handle_name);
+
+ g_mutex_lock (&data_manager->connections_lock);
+ g_hash_table_insert (data_manager->cached_connections,
+ uri, g_object_ref (connection));
+ g_mutex_unlock (&data_manager->connections_lock);
+}
diff --git a/src/libtracker-data/tracker-data-manager.h b/src/libtracker-data/tracker-data-manager.h
index 47f8c07f9..bb4a30e3b 100644
--- a/src/libtracker-data/tracker-data-manager.h
+++ b/src/libtracker-data/tracker-data-manager.h
@@ -116,6 +116,9 @@ gboolean tracker_data_manager_expand_prefix (TrackerDataManager *ma
TrackerSparqlConnection * tracker_data_manager_get_remote_connection (TrackerDataManager *data_manager,
const gchar *uri,
GError **error);
+void tracker_data_manager_map_connection (TrackerDataManager *data_manager,
+ const gchar *handle_name,
+ TrackerSparqlConnection *connection);
G_END_DECLS