[tracker/gdbus-porting] miner-rss: GDBus port of tracker-miner-rss.c
- From: Philip Van Hoof <pvanhoof src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [tracker/gdbus-porting] miner-rss: GDBus port of tracker-miner-rss.c
- Date: Mon, 10 Jan 2011 10:44:55 +0000 (UTC)
commit c8c751a086095ac1a2d565514ef85b714fbff973
Author: Philip Van Hoof <philip codeminded be>
Date: Mon Jan 10 11:37:37 2011 +0100
miner-rss: GDBus port of tracker-miner-rss.c
src/libtracker-common/tracker-ontologies.h | 1 +
src/miners/rss/tracker-miner-rss.c | 85 ++++++++++------------------
2 files changed, 31 insertions(+), 55 deletions(-)
---
diff --git a/src/libtracker-common/tracker-ontologies.h b/src/libtracker-common/tracker-ontologies.h
index 4eccafb..e74be44 100644
--- a/src/libtracker-common/tracker-ontologies.h
+++ b/src/libtracker-common/tracker-ontologies.h
@@ -47,6 +47,7 @@ G_BEGIN_DECLS
/* Temporary */
#define TRACKER_NMM_PREFIX "http://www.tracker-project.org/temp/nmm#"
#define TRACKER_MLO_PREFIX "http://www.tracker-project.org/temp/mlo#"
+#define TRACKER_MFO_PREFIX "http://www.tracker-project.org/temp/mfo#"
#define TRACKER_DATASOURCE_URN_PREFIX \
"urn:nepomuk:datasource:"
diff --git a/src/miners/rss/tracker-miner-rss.c b/src/miners/rss/tracker-miner-rss.c
index cba200a..49cb4d4 100644
--- a/src/miners/rss/tracker-miner-rss.c
+++ b/src/miners/rss/tracker-miner-rss.c
@@ -24,7 +24,7 @@
#include <libgrss.h>
-#include <libtracker-common/tracker-dbus-glib.h>
+#include <libtracker-common/tracker-ontologies.h>
#include <glib/gi18n.h>
@@ -44,6 +44,8 @@ struct _TrackerMinerRSSPrivate {
FeedsPool *pool;
gint now_fetching;
+ GDBusConnection *connection;
+ guint graph_updated_id;
};
static void miner_started (TrackerMiner *miner);
@@ -93,84 +95,57 @@ tracker_miner_rss_class_init (TrackerMinerRSSClass *klass)
}
static void
-subjects_added_cb (DBusGProxy *proxy,
- gchar **subjects,
- gpointer user_data)
+graph_updated_cb (GDBusConnection *connection,
+ const gchar *sender_name,
+ const gchar *object_path,
+ const gchar *interface_name,
+ const gchar *signal_name,
+ GVariant *parameters,
+ gpointer user_data)
{
- TrackerMinerRSS *miner;
-
- miner = TRACKER_MINER_RSS (user_data);
-
- g_message ("Subjects added: %d", subjects ? g_strv_length (subjects) : 0);
-
- /* TODO Add only the channels added? */
- retrieve_and_schedule_feeds (miner);
-}
-
-static void
-subjects_removed_cb (DBusGProxy *proxy,
- gchar **subjects,
- gpointer user_data)
-{
- TrackerMinerRSS *miner;
-
- miner = TRACKER_MINER_RSS (user_data);
+ g_message ("Subjects added or removed");
- g_message ("Subjects removed: %d", subjects ? g_strv_length (subjects) : 0);
-
- /* TODO Remove only the channels removed? */
- retrieve_and_schedule_feeds (miner);
+ retrieve_and_schedule_feeds (user_data);
}
static void
tracker_miner_rss_init (TrackerMinerRSS *object)
{
- DBusGConnection *connection;
- DBusGProxy *proxy;
GError *error = NULL;
TrackerMinerRSSPrivate *priv;
g_message ("Initializing...");
- connection = dbus_g_bus_get (DBUS_BUS_SESSION, &error);
+ priv = TRACKER_MINER_RSS_GET_PRIVATE (object);
+
+ priv->connection = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, &error);
- if (!connection) {
+ if (!priv->connection) {
g_critical ("Could not connect to the D-Bus session bus, %s",
error ? error->message : "no error given.");
g_error_free (error);
return;
}
- proxy = dbus_g_proxy_new_for_name (connection,
- TRACKER_DBUS_SERVICE, /* org.freedesktop.Tracker1 */
- TRACKER_DBUS_OBJECT_FEED,
- TRACKER_DBUS_INTERFACE_FEED);
-
- /* "org.freedesktop.Tracker1", */
- /* "/org/freedesktop/Tracker1/Resources/Classes/mfo/FeedChannel", */
- /* "org.freedesktop.Tracker1.Resources.Class"); */
-
- if (!proxy) {
- g_message ("Could not create DBusGProxy for interface:'%s'",
- TRACKER_DBUS_INTERFACE_FEED);
- return;
- }
-
- priv = TRACKER_MINER_RSS_GET_PRIVATE (object);
-
priv->pool = feeds_pool_new ();
g_signal_connect (priv->pool, "feed-fetching", G_CALLBACK (change_status), object);
g_signal_connect (priv->pool, "feed-ready", G_CALLBACK (feed_fetched), object);
priv->now_fetching = 0;
- g_message ("Listening for feed changes on D-Bus interface...");
- g_message (" Path:'%s'", TRACKER_DBUS_OBJECT_FEED);
-
- dbus_g_proxy_add_signal (proxy, "SubjectsAdded", G_TYPE_STRV, G_TYPE_INVALID);
- dbus_g_proxy_connect_signal (proxy, "SubjectsAdded", G_CALLBACK (subjects_added_cb), object, NULL);
-
- dbus_g_proxy_add_signal (proxy, "SubjectsRemoved", G_TYPE_STRV, G_TYPE_INVALID);
- dbus_g_proxy_connect_signal (proxy, "SubjectsRemoved", G_CALLBACK (subjects_removed_cb), object, NULL);
+ g_message ("Listening for GraphUpdated changes on D-Bus interface...");
+ g_message (" arg0:'%s'", TRACKER_MFO_PREFIX "FeedChannel");
+
+ priv->graph_updated_id =
+ g_dbus_connection_signal_subscribe (priv->connection,
+ "org.freedesktop.Tracker1",
+ "org.freedesktop.Tracker1.Resources",
+ "GraphUpdated",
+ "/org/freedesktop/Tracker1/Resources",
+ TRACKER_MFO_PREFIX "FeedChannel",
+ G_DBUS_SIGNAL_FLAGS_NONE,
+ graph_updated_cb,
+ object,
+ NULL);
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]