summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichal Hruby <michal.mhr@gmail.com>2011-02-04 21:59:43 +0100
committerMichal Hruby <michal.mhr@gmail.com>2011-02-04 21:59:43 +0100
commit4d422cb6cf37802812a1e5a7a32e63cd9a595ec1 (patch)
treeffaa724c980b7a67fafe8b8385f0f620fc1facd5
parentc8644d01bdfd47d5a5a4bdada3ede9cb175f5507 (diff)
Get rid of dbus-glib, use GDBus instead
-rw-r--r--configure.ac8
-rw-r--r--src/Makefile.am4
-rw-r--r--src/glib-extra.vapi5
-rw-r--r--src/zeitgeist-datahub.vala39
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)