[Telepathy-commits] [telepathy-mission-control/master] Remove the handle and handle_type private members.

Alberto Mardegan alberto.mardegan at nokia.com
Mon Feb 2 00:00:16 PST 2009


---
 src/mcd-channel.c |   83 +++++++++++++----------------------------------------
 1 files changed, 20 insertions(+), 63 deletions(-)

diff --git a/src/mcd-channel.c b/src/mcd-channel.c
index 85076b8..ffc98b9 100644
--- a/src/mcd-channel.c
+++ b/src/mcd-channel.c
@@ -55,8 +55,6 @@ struct _McdChannelPrivate
 {
     /* Channel info */
     GQuark type_quark;
-    guint handle;
-    TpHandleType handle_type;
     gboolean outgoing;
     
     /* Channel created based on the above channel info */
@@ -65,7 +63,6 @@ struct _McdChannelPrivate
 
     /* boolean properties */
     guint self_handle_ready : 1;
-    guint name_ready : 1;
     guint local_pending_members_ready : 1;
     guint close_on_dispose : 1;
 
@@ -76,7 +73,6 @@ struct _McdChannelPrivate
     guint self_handle;
     
     McdChannelStatus status;
-    gchar *channel_name;
     const gchar *initiator_id;
 
     McdChannelRequestData *request_data;
@@ -347,28 +343,10 @@ _mcd_channel_setup_group (McdChannel *channel)
 }
 
 static void
-inspect_channel_handle_cb (TpConnection *proxy, const gchar **handle_names,
-			   const GError *error, gpointer user_data,
-			   GObject *weak_object)
-{
-    McdChannel *channel = MCD_CHANNEL (weak_object);
-    McdChannelPrivate *priv = user_data;
-
-    if (error)
-	g_warning ("%s: InspectHandles failed: %s", G_STRFUNC, error->message);
-    else
-	priv->channel_name = g_strdup (handle_names[0]);
-    priv->name_ready = TRUE;
-    g_object_notify ((GObject *)channel, "name-ready");
-}
-
-static void
 on_channel_ready (TpChannel *tp_chan, const GError *error, gpointer user_data)
 {
     McdChannel *channel, **channel_ptr = user_data;
     McdChannelPrivate *priv;
-    TpConnection *tp_conn;
-    GArray request_handles;
 
     channel = *channel_ptr;
     if (channel)
@@ -384,26 +362,7 @@ on_channel_ready (TpChannel *tp_chan, const GError *error, gpointer user_data)
     if (!channel) return;
 
     priv = channel->priv;
-    g_object_get (priv->tp_chan,
-		  "connection", &tp_conn,
-		  "handle", &priv->handle,
-		  "handle-type", &priv->handle_type,
-		  NULL);
-    g_debug ("%s: handle %u, type %u", G_STRFUNC,
-	     priv->handle_type, priv->handle);
-    if (priv->handle_type != 0)
-    {
-	/* get the name of the channel */
-	request_handles.len = 1;
-	request_handles.data = (gchar *)&priv->handle;
-	tp_cli_connection_call_inspect_handles (tp_conn, -1,
-						priv->handle_type,
-						&request_handles,
-						inspect_channel_handle_cb,
-						priv, NULL,
-						(GObject *)channel);
-    }
-    g_object_unref (tp_conn);
+    g_object_notify ((GObject *)channel, "name-ready");
 
     priv->has_group_if = tp_proxy_has_interface_by_id (priv->tp_chan,
 						       TP_IFACE_QUARK_CHANNEL_INTERFACE_GROUP);
@@ -488,14 +447,12 @@ _mcd_channel_set_property (GObject * obj, guint prop_id,
         DEPRECATED_PROPERTY_WARNING;
          break;
     case PROP_CHANNEL_HANDLE:
-        DEPRECATED_PROPERTY_WARNING;
     case PROP_HANDLE:
-	priv->handle = g_value_get_uint (val);
+        DEPRECATED_PROPERTY_WARNING;
 	break;
     case PROP_CHANNEL_HANDLE_TYPE:
-        DEPRECATED_PROPERTY_WARNING;
     case PROP_HANDLE_TYPE:
-	priv->handle_type = g_value_get_uint (val);
+        DEPRECATED_PROPERTY_WARNING;
 	break;
     case PROP_OUTGOING:
 	priv->outgoing = g_value_get_boolean (val);
@@ -539,11 +496,11 @@ _mcd_channel_get_property (GObject * obj, guint prop_id,
 	break;
     case PROP_CHANNEL_HANDLE:
         DEPRECATED_PROPERTY_WARNING;
-	g_value_set_uint (val, priv->handle);
+	g_value_set_uint (val, 0);
 	break;
     case PROP_CHANNEL_HANDLE_TYPE:
         DEPRECATED_PROPERTY_WARNING;
-	g_value_set_uint (val, priv->handle_type);
+	g_value_set_uint (val, 0);
 	break;
     case PROP_OUTGOING:
 	g_value_set_boolean (val, priv->outgoing);
@@ -556,7 +513,8 @@ _mcd_channel_get_property (GObject * obj, guint prop_id,
 	g_value_set_boolean (val, priv->self_handle_ready);
 	break;
     case PROP_NAME_READY:
-	g_value_set_boolean (val, priv->name_ready);
+        g_value_set_boolean (val, priv->tp_chan &&
+                             tp_channel_is_ready (priv->tp_chan));
 	break;
     default:
 	G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, prop_id, pspec);
@@ -570,7 +528,6 @@ _mcd_channel_finalize (GObject * object)
     McdChannelPrivate *priv = MCD_CHANNEL_PRIV (object);
     
     g_array_free (priv->pending_local_members, TRUE);
-    g_free (priv->channel_name);
     
     G_OBJECT_CLASS (mcd_channel_parent_class)->finalize (object);
 }
@@ -904,8 +861,8 @@ mcd_channel_set_object_path (McdChannel *channel, TpConnection *connection,
     g_return_val_if_fail (priv->tp_chan == NULL, FALSE);
     priv->tp_chan = tp_channel_new (connection, object_path,
                                     g_quark_to_string (priv->type_quark),
-                                    priv->handle_type,
-                                    priv->handle,
+                                    mcd_channel_get_handle_type (channel),
+                                    mcd_channel_get_handle (channel),
                                     &error);
     if (error)
     {
@@ -1086,9 +1043,18 @@ mcd_channel_get_members (McdChannel *channel)
 const gchar *
 mcd_channel_get_name (McdChannel *channel)
 {
-    McdChannelPrivate *priv = MCD_CHANNEL_PRIV (channel);
+    McdChannelPrivate *priv;
+    GHashTable *properties = NULL;
 
-    return priv->channel_name;
+    g_return_val_if_fail (MCD_IS_CHANNEL (channel), NULL);
+    priv = channel->priv;
+    if (priv->tp_chan)
+        properties = tp_channel_borrow_immutable_properties (priv->tp_chan);
+    else if (G_LIKELY (priv->request_data))
+        properties = priv->request_data->properties;
+
+    if (!properties) return NULL;
+    return tp_asv_get_string (properties, TP_IFACE_CHANNEL ".TargetID");
 }
 
 /**
@@ -1185,19 +1151,10 @@ _mcd_channel_set_immutable_properties (McdChannel *channel,
                                        GHashTable *properties)
 {
     McdChannelPrivate *priv = channel->priv;
-    gboolean present;
-    guint handle;
 
     g_object_set_data_full ((GObject *)channel, CD_IMMUTABLE_PROPERTIES,
                             properties, (GDestroyNotify)g_hash_table_unref);
     /* copy any properties into the channel */
-    /* FIXME: this is only a quick fix. This all "immutable properties" thing
-     * must be revisited, when a similar TpGlib API exists */
-    handle = tp_asv_get_uint32 (properties, TP_IFACE_CHANNEL ".TargetHandle",
-                                &present);
-    if (present)
-        channel->priv->handle = handle;
-
     priv->initiator_id =
         tp_asv_get_string (properties, TP_IFACE_CHANNEL ".InitiatorID");
 }
-- 
1.5.6.5




More information about the Telepathy-commits mailing list