diff options
author | Carlos Garnacho <carlosg@gnome.org> | 2021-04-03 15:43:49 +0200 |
---|---|---|
committer | Carlos Garnacho <carlosg@gnome.org> | 2022-02-10 23:32:00 +0100 |
commit | e4c3a5bc154c7003250501cc7d51740a975304ad (patch) | |
tree | d6ae2845af86dabe1ea357f15cf2a0b265d845e2 /src/libtracker-sparql/direct/tracker-direct.c | |
parent | 0186235b66aedf6401d24c5263415bbb6409335f (diff) | |
download | tracker-e4c3a5bc154c7003250501cc7d51740a975304ad.tar.gz |
libtracker-sparql: Add tracker_sparql_connection_map_connection()
This API call allows hooking up a local TrackerSparqlConnection into
another, so it is possible to access other local connections from
one of them. This happens via the SERVICE SPARQL syntax, using
special local:$handle_name URIs.
This may be useful if there is data with different relevance (e.g.
cache vs persistent) that the application is interested in maintaining
separately, but query altogether.
Diffstat (limited to 'src/libtracker-sparql/direct/tracker-direct.c')
-rw-r--r-- | src/libtracker-sparql/direct/tracker-direct.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/libtracker-sparql/direct/tracker-direct.c b/src/libtracker-sparql/direct/tracker-direct.c index 8317f40d3..cc6445fcc 100644 --- a/src/libtracker-sparql/direct/tracker-direct.c +++ b/src/libtracker-sparql/direct/tracker-direct.c @@ -1368,6 +1368,22 @@ tracker_direct_connection_serialize_finish (TrackerSparqlConnection *connection } static void +tracker_direct_connection_map_connection (TrackerSparqlConnection *connection, + const gchar *handle_name, + TrackerSparqlConnection *service_connection) +{ + TrackerDirectConnectionPrivate *priv; + TrackerDirectConnection *conn; + + conn = TRACKER_DIRECT_CONNECTION (connection); + priv = tracker_direct_connection_get_instance_private (conn); + + tracker_data_manager_map_connection (priv->data_manager, + handle_name, + service_connection); +} + +static void tracker_direct_connection_class_init (TrackerDirectConnectionClass *klass) { TrackerSparqlConnectionClass *sparql_connection_class; @@ -1404,6 +1420,7 @@ tracker_direct_connection_class_init (TrackerDirectConnectionClass *klass) sparql_connection_class->lookup_dbus_service = tracker_direct_connection_lookup_dbus_service; sparql_connection_class->serialize_async = tracker_direct_connection_serialize_async; sparql_connection_class->serialize_finish = tracker_direct_connection_serialize_finish; + sparql_connection_class->map_connection = tracker_direct_connection_map_connection; props[PROP_FLAGS] = g_param_spec_flags ("flags", |