summaryrefslogtreecommitdiff
path: root/src/libtracker-bus
diff options
context:
space:
mode:
authorSam Thursfield <sam@afuera.me.uk>2018-04-20 19:00:31 +0200
committerSam Thursfield <sam@afuera.me.uk>2018-08-11 20:14:54 +0200
commiteb24ea93bc550934d15223d002b490143e604921 (patch)
tree2a1c2151161a7178550871b43ebb84647107fcf3 /src/libtracker-bus
parent061667e1eeac036130a944083aca4fcf16004e6a (diff)
downloadtracker-sam/tracker-sparql-connection-set-dbus-connection.tar.gz
Add tracker_sparql_connection_get/set_dbus_connection()sam/tracker-sparql-connection-set-dbus-connection
Currently it's only possible to open a TrackerSparqlConnection to an instance of Tracker that is running on the session-wide message bus. There are use cases for running the Tracker daemons on a private session bus though. In fact it's necessary to do this if you want to set up a custom domain without having to become root and create .service files in /usr/share/dbus-1/services. It would also be useful for the functional-tests to be able to use libtracker-sparql instead of having to talk directly to Tracker's D-Bus API.
Diffstat (limited to 'src/libtracker-bus')
-rw-r--r--src/libtracker-bus/tracker-bus.vala8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/libtracker-bus/tracker-bus.vala b/src/libtracker-bus/tracker-bus.vala
index 4ba3eedb4..3b971d030 100644
--- a/src/libtracker-bus/tracker-bus.vala
+++ b/src/libtracker-bus/tracker-bus.vala
@@ -21,9 +21,13 @@ public class Tracker.Bus.Connection : Tracker.Sparql.Connection {
DBusConnection bus;
string dbus_name;
- public Connection (string dbus_name) throws Sparql.Error, IOError, DBusError, GLib.Error {
+ public Connection (string dbus_name, DBusConnection? dbus_connection) throws Sparql.Error, IOError, DBusError, GLib.Error {
this.dbus_name = dbus_name;
- bus = GLib.Bus.get_sync (Tracker.IPC.bus ());
+
+ if (dbus_connection == null)
+ bus = GLib.Bus.get_sync (Tracker.IPC.bus ());
+ else
+ bus = dbus_connection;
debug ("Waiting for service to become available...");