diff options
author | Carlos Garnacho <carlosg@gnome.org> | 2021-04-03 15:43:16 +0200 |
---|---|---|
committer | Carlos Garnacho <carlosg@gnome.org> | 2022-02-10 23:29:29 +0100 |
commit | 0186235b66aedf6401d24c5263415bbb6409335f (patch) | |
tree | 726573e33c849d97c9337fd26f3c4d7a8667813d | |
parent | 54119deb3ac487d867041b09ef351c386547f4cd (diff) | |
download | tracker-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.c | 24 | ||||
-rw-r--r-- | src/libtracker-data/tracker-data-manager.h | 3 |
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 |