[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