[tracker] libtracker-sparql: Implement tracker_sparql_connection_get_namespace_manager()
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [tracker] libtracker-sparql: Implement tracker_sparql_connection_get_namespace_manager()
- Date: Tue, 11 Jul 2017 22:27:40 +0000 (UTC)
commit bfc79c0eda9b6c5ad0b255032b800e41ece31b01
Author: Carlos Garnacho <carlosg gnome org>
Date: Tue Jul 11 00:02:03 2017 +0200
libtracker-sparql: Implement tracker_sparql_connection_get_namespace_manager()
This is implemented on direct connections and the generic backend. The
TrackerNamespaceManager will be filled in from the internal ontologies, as
read by the TrackerDataManager.
.../libtracker-sparql-sections.txt | 1 +
src/libtracker-direct/tracker-direct.vala | 15 +++++++++++++++
src/libtracker-sparql-backend/tracker-backend.vala | 7 +++++++
src/libtracker-sparql/tracker-connection.vala | 17 +++++++++++++++++
4 files changed, 40 insertions(+), 0 deletions(-)
---
diff --git a/docs/reference/libtracker-sparql/libtracker-sparql-sections.txt
b/docs/reference/libtracker-sparql/libtracker-sparql-sections.txt
index c0d3b4e..6bcbb7b 100644
--- a/docs/reference/libtracker-sparql/libtracker-sparql-sections.txt
+++ b/docs/reference/libtracker-sparql/libtracker-sparql-sections.txt
@@ -151,6 +151,7 @@ tracker_sparql_connection_load_finish
tracker_sparql_connection_statistics
tracker_sparql_connection_statistics_async
tracker_sparql_connection_statistics_finish
+tracker_sparql_connection_get_namespace_manager
<SUBSECTION Standard>
TrackerSparqlConnectionClass
TRACKER_SPARQL_CONNECTION
diff --git a/src/libtracker-direct/tracker-direct.vala b/src/libtracker-direct/tracker-direct.vala
index edec19f..e079e6e 100644
--- a/src/libtracker-direct/tracker-direct.vala
+++ b/src/libtracker-direct/tracker-direct.vala
@@ -38,6 +38,7 @@ public class Tracker.Direct.Connection : Tracker.Sparql.Connection, AsyncInitabl
public SourceFunc init_callback;
private AsyncQueue<Task> update_queue;
+ private NamespaceManager namespace_manager;
[CCode (cname = "SHAREDIR")]
extern const string SHAREDIR;
@@ -352,4 +353,18 @@ public class Tracker.Direct.Connection : Tracker.Sparql.Connection, AsyncInitabl
if (task.error != null)
throw new Sparql.Error.INTERNAL (task.error.message);
}
+
+ public override NamespaceManager? get_namespace_manager () {
+ if (namespace_manager == null && data_manager != null) {
+ var ht = data_manager.get_namespaces ();
+ namespace_manager = new NamespaceManager ();
+
+ foreach (var prefix in ht.get_keys ()) {
+ print ("%s %s\n", prefix, ht.lookup (prefix));
+ namespace_manager.add_prefix (prefix, ht.lookup (prefix));
+ }
+ }
+
+ return namespace_manager;
+ }
}
diff --git a/src/libtracker-sparql-backend/tracker-backend.vala
b/src/libtracker-sparql-backend/tracker-backend.vala
index 76415d3..23cc27c 100644
--- a/src/libtracker-sparql-backend/tracker-backend.vala
+++ b/src/libtracker-sparql-backend/tracker-backend.vala
@@ -153,6 +153,13 @@ class Tracker.Sparql.Backend : Connection {
return yield bus.statistics_async (cancellable);
}
+ public override NamespaceManager? get_namespace_manager () {
+ if (direct != null)
+ return direct.get_namespace_manager ();
+ else
+ return NamespaceManager.get_default ();
+ }
+
private Connection create_readonly_direct () throws GLib.Error, Sparql.Error, IOError, DBusError {
var conn = new Tracker.Direct.Connection (Tracker.Sparql.ConnectionFlags.READONLY,
domain_ontology.get_cache (),
diff --git a/src/libtracker-sparql/tracker-connection.vala b/src/libtracker-sparql/tracker-connection.vala
index f06bbe3..9123329 100644
--- a/src/libtracker-sparql/tracker-connection.vala
+++ b/src/libtracker-sparql/tracker-connection.vala
@@ -511,6 +511,23 @@ public abstract class Tracker.Sparql.Connection : Object {
return null;
}
+ /**
+ * tracker_sparql_connection_get_namespace_manager:
+ * @self: a #TrackerSparqlConnection
+ *
+ * Retrieves a #TrackerNamespaceManager that contains all
+ * prefixes in the ontology of @self.
+ *
+ * Returns: (transfer none): a #TrackerNamespaceManager for this
+ * connection. This object is owned by @self and must not be freed.
+ *
+ * Since: 2.0
+ */
+ public virtual NamespaceManager? get_namespace_manager () {
+ warning ("Not implemented");
+ return null;
+ }
+
public extern static void set_domain (string? domain);
public extern static string? get_domain ();
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]