[telepathy-mission-control/master] McdHandlerMap: operate entirely in terms of TpChannel

Simon McVittie simon.mcvittie at collabora.co.uk
Tue Oct 20 06:04:39 PDT 2009


---
 src/mcd-dispatcher.c       |   11 +++++++++--
 src/mcd-handler-map-priv.h |    5 ++---
 src/mcd-handler-map.c      |   12 ++++--------
 3 files changed, 15 insertions(+), 13 deletions(-)

diff --git a/src/mcd-dispatcher.c b/src/mcd-dispatcher.c
index df64954..cbd6c7b 100644
--- a/src/mcd-dispatcher.c
+++ b/src/mcd-dispatcher.c
@@ -515,15 +515,18 @@ mcd_dispatcher_set_channel_handled_by (McdDispatcher *self,
                                        const gchar *unique_name)
 {
     const gchar *path;
+    TpChannel *tp_channel;
 
     g_assert (unique_name != NULL);
 
     path = mcd_channel_get_object_path (channel);
+    tp_channel = mcd_channel_get_tp_channel (channel);
+    g_return_if_fail (tp_channel != NULL);
 
     _mcd_channel_set_status (channel, MCD_CHANNEL_STATUS_DISPATCHED);
 
     _mcd_handler_map_set_channel_handled (self->priv->handler_map,
-                                          channel, unique_name);
+                                          tp_channel, unique_name);
 }
 
 static void mcd_dispatcher_run_handlers (McdDispatcherContext *context);
@@ -2754,6 +2757,7 @@ _mcd_dispatcher_recover_channel (McdDispatcher *dispatcher,
     const gchar *path;
     const gchar *unique_name;
     gboolean requested;
+    TpChannel *tp_channel;
 
     /* we must check if the channel is already being handled by some client; to
      * do this, we can examine the active handlers' "HandledChannel" property.
@@ -2765,6 +2769,9 @@ _mcd_dispatcher_recover_channel (McdDispatcher *dispatcher,
         dispatcher->priv->clients));
 
     path = mcd_channel_get_object_path (channel);
+    tp_channel = mcd_channel_get_tp_channel (channel);
+    g_return_if_fail (tp_channel != NULL);
+
     unique_name = _mcd_handler_map_get_handler (priv->handler_map, path);
 
     if (unique_name != NULL)
@@ -2773,7 +2780,7 @@ _mcd_dispatcher_recover_channel (McdDispatcher *dispatcher,
                path, unique_name);
         _mcd_channel_set_status (channel,
                                  MCD_CHANNEL_STATUS_DISPATCHED);
-        _mcd_handler_map_set_channel_handled (priv->handler_map, channel,
+        _mcd_handler_map_set_channel_handled (priv->handler_map, tp_channel,
                                               unique_name);
     }
     else
diff --git a/src/mcd-handler-map-priv.h b/src/mcd-handler-map-priv.h
index e3d0f24..817da3a 100644
--- a/src/mcd-handler-map-priv.h
+++ b/src/mcd-handler-map-priv.h
@@ -26,10 +26,9 @@
 #ifndef MCD_HANDLER_MAP_H_
 #define MCD_HANDLER_MAP_H_
 
+#include <telepathy-glib/channel.h>
 #include <telepathy-glib/dbus.h>
 
-#include "mcd-channel.h"
-
 G_BEGIN_DECLS
 
 typedef struct _McdHandlerMap McdHandlerMap;
@@ -75,7 +74,7 @@ void _mcd_handler_map_set_path_handled (McdHandlerMap *self,
                                         const gchar *unique_name);
 
 void _mcd_handler_map_set_channel_handled (McdHandlerMap *self,
-                                           McdChannel *channel,
+                                           TpChannel *channel,
                                            const gchar *unique_name);
 
 G_END_DECLS
diff --git a/src/mcd-handler-map.c b/src/mcd-handler-map.c
index 455b63a..a2e08a5 100644
--- a/src/mcd-handler-map.c
+++ b/src/mcd-handler-map.c
@@ -296,20 +296,16 @@ handled_channel_invalidated_cb (TpChannel *channel,
 
 void
 _mcd_handler_map_set_channel_handled (McdHandlerMap *self,
-                                      McdChannel *channel,
+                                      TpChannel *channel,
                                       const gchar *unique_name)
 {
-    const gchar *path = mcd_channel_get_object_path (channel);
-    TpChannel *tp_channel;
-
-    tp_channel = mcd_channel_get_tp_channel (channel);
-    g_return_if_fail (tp_channel != NULL);
+    const gchar *path = tp_proxy_get_object_path (channel);
 
     g_hash_table_insert (self->priv->handled_channels,
                          g_strdup (path),
-                         g_object_ref (tp_channel));
+                         g_object_ref (channel));
 
-    g_signal_connect (tp_channel, "invalidated",
+    g_signal_connect (channel, "invalidated",
                       G_CALLBACK (handled_channel_invalidated_cb),
                       g_object_ref (self));
 
-- 
1.5.6.5



More information about the telepathy-commits mailing list