[Telepathy-commits] [telepathy-mission-control/master] Rewrite self-handle handling
Alberto Mardegan
alberto.mardegan at nokia.com
Mon Feb 2 00:00:16 PST 2009
Use TpChannel's implementation of the self-handle.
If the channel is ready and the group interface is supported, the self handle
is already there.
---
src/mcd-channel.c | 38 +++++++-------------------------------
1 files changed, 7 insertions(+), 31 deletions(-)
diff --git a/src/mcd-channel.c b/src/mcd-channel.c
index 991956e..ed74e5d 100644
--- a/src/mcd-channel.c
+++ b/src/mcd-channel.c
@@ -45,7 +45,6 @@
#include "_gen/gtypes.h"
#define MCD_CHANNEL_PRIV(channel) (MCD_CHANNEL (channel)->priv)
-#define INVALID_SELF_HANDLE ((guint) -1)
G_DEFINE_TYPE (McdChannel, mcd_channel, MCD_TYPE_MISSION);
@@ -68,8 +67,7 @@ struct _McdChannelPrivate
GArray *pending_local_members;
gboolean members_accepted;
gboolean missed;
- guint self_handle;
-
+
McdChannelStatus status;
const gchar *initiator_id;
@@ -212,7 +210,7 @@ on_members_changed (TpChannel *proxy, const gchar *message,
{
guint i;
- if (actor != priv->self_handle)
+ if (actor != mcd_channel_get_self_handle (channel))
{
for (i = 0; i < removed->len; i++)
{
@@ -279,24 +277,6 @@ proxy_destroyed (TpProxy *self, guint domain, gint code, gchar *message,
g_debug ("Channel closed");
}
-static void
-group_get_self_handle_cb (TpChannel *proxy, guint self_handle,
- const GError *error, gpointer user_data,
- GObject *weak_object)
-{
- McdChannel *channel = MCD_CHANNEL (weak_object);
- McdChannelPrivate *priv = user_data;
- if (error)
- g_warning ("get_self_handle failed: %s", error->message);
- else
- {
- priv->self_handle = self_handle;
- g_debug ("channel %p: got self handle %u", channel, self_handle);
- }
- priv->self_handle_ready = TRUE;
- g_object_notify ((GObject *)channel, "self-handle-ready");
-}
-
static inline void
_mcd_channel_setup_group (McdChannel *channel)
{
@@ -307,10 +287,7 @@ _mcd_channel_setup_group (McdChannel *channel)
priv, NULL,
(GObject *)channel,
NULL);
- tp_cli_channel_interface_group_call_get_self_handle (priv->tp_chan, -1,
- group_get_self_handle_cb,
- priv, NULL,
- (GObject *)channel);
+ g_object_notify ((GObject *)channel, "self-handle-ready");
tp_cli_channel_interface_group_call_get_local_pending_members_with_info (priv->tp_chan, -1,
group_get_local_pending_members_with_info,
priv, NULL,
@@ -426,8 +403,6 @@ _mcd_channel_get_property (GObject * obj, guint prop_id,
g_value_set_boolean (val, priv->outgoing);
break;
case PROP_SELF_HANDLE_READY:
- g_value_set_boolean (val, priv->self_handle_ready);
- break;
case PROP_NAME_READY:
g_value_set_boolean (val, priv->tp_chan &&
tp_channel_is_ready (priv->tp_chan));
@@ -574,7 +549,6 @@ mcd_channel_init (McdChannel * obj)
McdChannelPrivate);
obj->priv = priv;
- priv->self_handle = INVALID_SELF_HANDLE;
priv->pending_local_members = g_array_new (FALSE, FALSE,
sizeof (PendingMemberInfo));
priv->close_on_dispose = TRUE;
@@ -956,8 +930,10 @@ mcd_channel_get_inviter (McdChannel *channel)
guint
mcd_channel_get_self_handle (McdChannel *channel)
{
- g_return_val_if_fail (MCD_IS_CHANNEL (channel), INVALID_SELF_HANDLE);
- return channel->priv->self_handle;
+ g_return_val_if_fail (MCD_IS_CHANNEL (channel), 0);
+ if (channel->priv->tp_chan)
+ return tp_channel_group_get_self_handle (channel->priv->tp_chan);
+ return 0;
}
/**
--
1.5.6.5
More information about the Telepathy-commits
mailing list