[tracker/wip/carlosg/bus-connection-methods: 1/4] libtracker-sparql: Implement get_namespace_manager() on bus connection
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [tracker/wip/carlosg/bus-connection-methods: 1/4] libtracker-sparql: Implement get_namespace_manager() on bus connection
- Date: Sun, 4 Apr 2021 11:55:07 +0000 (UTC)
commit 8064d7ed68d9f81001fe860503c03edd0de24b8b
Author: Carlos Garnacho <carlosg gnome org>
Date: Tue Mar 23 11:46:06 2021 +0100
libtracker-sparql: Implement get_namespace_manager() on bus connection
This was missing, make the bus connection introspect the prefixes that
are available on the other side of the connection, so we can offer a
TrackerNamespaceManager for it.
src/libtracker-sparql/bus/tracker-bus.vala | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
---
diff --git a/src/libtracker-sparql/bus/tracker-bus.vala b/src/libtracker-sparql/bus/tracker-bus.vala
index 985d3f684..6bd12a4ef 100644
--- a/src/libtracker-sparql/bus/tracker-bus.vala
+++ b/src/libtracker-sparql/bus/tracker-bus.vala
@@ -22,6 +22,7 @@ public class Tracker.Bus.Connection : Tracker.Sparql.Connection {
string dbus_name;
string object_path;
bool sandboxed;
+ NamespaceManager namespaces;
private const string DBUS_PEER_IFACE = "org.freedesktop.DBus.Peer";
@@ -58,6 +59,7 @@ public class Tracker.Bus.Connection : Tracker.Sparql.Connection {
reply.to_gerror ();
this.dbus_name = dbus_name;
this.object_path = object_path;
+ yield this.init_namespaces ();
return;
} catch (GLib.Error e) {
if (!GLib.FileUtils.test ("/.flatpak-info", GLib.FileTest.EXISTS)) {
@@ -83,6 +85,16 @@ public class Tracker.Bus.Connection : Tracker.Sparql.Connection {
this.dbus_name = PORTAL_NAME;
this.object_path = object_path;
this.sandboxed = true;
+
+ yield this.init_namespaces ();
+ }
+
+ private async void init_namespaces () throws Sparql.Error, IOError, DBusError, GLib.Error {
+ this.namespaces = new NamespaceManager ();
+ var cursor = yield this.query_async ("SELECT ?prefix ?name { ?name nrl:prefix ?prefix }",
null);
+ while (cursor.next ())
+ this.namespaces.add_prefix(cursor.get_string(0), cursor.get_string(1));
+ cursor.close ();
}
static void pipe (out UnixInputStream input, out UnixOutputStream output) throws IOError {
@@ -349,4 +361,8 @@ public class Tracker.Bus.Connection : Tracker.Sparql.Connection {
this.close ();
return true;
}
+
+ public override Tracker.NamespaceManager? get_namespace_manager () {
+ return namespaces;
+ }
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]