diff options
author | Michal Hruby <michal.mhr@gmail.com> | 2011-02-04 21:59:43 +0100 |
---|---|---|
committer | Michal Hruby <michal.mhr@gmail.com> | 2011-02-04 21:59:43 +0100 |
commit | 4d422cb6cf37802812a1e5a7a32e63cd9a595ec1 (patch) | |
tree | ffaa724c980b7a67fafe8b8385f0f620fc1facd5 | |
parent | c8644d01bdfd47d5a5a4bdada3ede9cb175f5507 (diff) |
Get rid of dbus-glib, use GDBus instead
-rw-r--r-- | configure.ac | 8 | ||||
-rw-r--r-- | src/Makefile.am | 4 | ||||
-rw-r--r-- | src/glib-extra.vapi | 5 | ||||
-rw-r--r-- | src/zeitgeist-datahub.vala | 39 |
4 files changed, 25 insertions, 31 deletions
diff --git a/configure.ac b/configure.ac index 70627f9..31cb34a 100644 --- a/configure.ac +++ b/configure.ac @@ -31,18 +31,18 @@ AC_STDC_HEADERS dnl ============================================== dnl Check for vala dnl ============================================== -AM_PROG_VALAC([0.9.8]) +AM_PROG_VALAC([0.11.2]) AM_SILENT_RULES([yes]) dnl ============================================== dnl Check that we meet the dependencies dnl ============================================== -MIN_GLIB_VERSION=2.22.0 +MIN_GLIB_VERSION=2.26.0 MIN_GTK_VERSION=2.16.0 -MIN_ZEITGEIST_VERSION=0.2.3 +MIN_ZEITGEIST_VERSION=0.3.1 -LIBRARY_MODULES="glib-2.0 >= $MIN_GLIB_VERSION gobject-2.0 dbus-glib-1 zeitgeist-1.0 >= $MIN_ZEITGEIST_VERSION" +LIBRARY_MODULES="glib-2.0 >= $MIN_GLIB_VERSION gobject-2.0 gio-2.0 gio-unix-2.0 zeitgeist-1.0 >= $MIN_ZEITGEIST_VERSION" PKG_CHECK_MODULES(DATAHUB_MODULES, [$LIBRARY_MODULES]) PKG_CHECK_MODULES(GTK, [gtk+-2.0 >= $MIN_GTK_VERSION]) diff --git a/src/Makefile.am b/src/Makefile.am index 2b87af3..c13935f 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1,7 +1,9 @@ VALAFLAGS = \ - --pkg dbus-glib-1 \ + --pkg gio-2.0 \ + --pkg gio-unix-2.0 \ --pkg gtk+-2.0 \ --pkg zeitgeist-1.0 \ + glib-extra.vapi \ $(NULL) datahubdir = $(bindir) diff --git a/src/glib-extra.vapi b/src/glib-extra.vapi new file mode 100644 index 0000000..dd3ade5 --- /dev/null +++ b/src/glib-extra.vapi @@ -0,0 +1,5 @@ +[CCode (cprefix = "G", lower_case_cprefix = "g_")] +namespace GLibExtra { + [CCode (cname = "GLIB_CHECK_VERSION")] + public static bool check_version (uint major, uint minor, uint micro); +} diff --git a/src/zeitgeist-datahub.vala b/src/zeitgeist-datahub.vala index 663d1b5..2e2e00a 100644 --- a/src/zeitgeist-datahub.vala +++ b/src/zeitgeist-datahub.vala @@ -25,7 +25,7 @@ using Zeitgeist; [DBus (name = "org.gnome.zeitgeist.datahub")] public interface DataHubService : Object { - public abstract string[] get_data_providers () throws DBus.Error; + public abstract string[] get_data_providers () throws IOError; } public class DataHub : Object, DataHubService @@ -200,36 +200,23 @@ public class DataHub : Object, DataHubService } } + const string UNIQUE_NAME = "org.gnome.zeitgeist.datahub"; + const string OBJECT_PATH = "/org/gnome/zeitgeist/datahub"; + protected void run () { - try - { - var connection = DBus.Bus.get (DBus.BusType.SESSION); - dynamic DBus.Object bus = - connection.get_object ("org.freedesktop.DBus", - "/org/freedesktop/DBus", - "org.freedesktop.DBus"); - - uint request_name_result = - bus.request_name ("org.gnome.zeitgeist.datahub", - (uint) DBus.NameFlag.DO_NOT_QUEUE); - - if (request_name_result == DBus.RequestNameReply.PRIMARY_OWNER) - { - connection.register_object ("/org/gnome/zeitgeist/datahub", this); - start_data_providers (); - main_loop.run (); - } - else + Bus.own_name (BusType.SESSION, UNIQUE_NAME, BusNameOwnerFlags.NONE, + (conn) => { conn.register_object (OBJECT_PATH, (DataHubService) this); }, + () => { start_data_providers (); }, + () => { warning ("Unable to get name \"org.gnome.zeitgeist.datahub\"" + " on the bus!"); + this.quit (); } - } - catch (GLib.Error err) - { - warning ("%s", err.message); - } + ); + + main_loop.run (); } protected void quit () @@ -264,7 +251,7 @@ public class DataHub : Object, DataHubService return actors; } - public string[] get_data_providers () throws DBus.Error + public string[] get_data_providers () throws IOError { string[] arr = {}; foreach (var provider in providers) |