[Telepathy-commits] [telepathy-mission-control/master] Add request data as a instance member
Alberto Mardegan
alberto.mardegan at nokia.com
Mon Feb 2 00:00:14 PST 2009
---
src/mcd-channel.c | 37 +++++++++++++++++++++++--------------
1 files changed, 23 insertions(+), 14 deletions(-)
diff --git a/src/mcd-channel.c b/src/mcd-channel.c
index ed37eb6..bd40eca 100644
--- a/src/mcd-channel.c
+++ b/src/mcd-channel.c
@@ -49,6 +49,8 @@
G_DEFINE_TYPE (McdChannel, mcd_channel, MCD_TYPE_MISSION);
+typedef struct _McdChannelRequestData McdChannelRequestData;
+
struct _McdChannelPrivate
{
/* Channel info */
@@ -76,7 +78,9 @@ struct _McdChannelPrivate
McdChannelStatus status;
gchar *channel_name;
const gchar *initiator_id;
-
+
+ McdChannelRequestData *request_data;
+
/* Requestor info */
guint requestor_serial;
gchar *requestor_client_id;
@@ -90,7 +94,7 @@ typedef struct
guint actor;
} PendingMemberInfo;
-typedef struct
+struct _McdChannelRequestData
{
GList *paths;
@@ -99,7 +103,7 @@ typedef struct
gchar *preferred_handler;
gboolean use_existing;
-} McdChannelRequestData;
+};
enum _McdChannelSignalType
{
@@ -133,7 +137,6 @@ enum _McdChannelPropertyType
#define CD_IMMUTABLE_PROPERTIES "_immprop"
#define CD_ERROR "_error"
-#define CD_REQUEST "_reqdata"
static guint mcd_channel_signals[LAST_SIGNAL] = { 0 };
@@ -593,6 +596,13 @@ _mcd_channel_dispose (GObject * object)
return;
priv->is_disposed = TRUE;
+
+ if (priv->request_data)
+ {
+ channel_request_data_free (priv->request_data);
+ priv->request_data = NULL;
+ }
+
_mcd_channel_release_tp_channel (MCD_CHANNEL (object),
priv->close_on_dispose);
G_OBJECT_CLASS (mcd_channel_parent_class)->dispose (object);
@@ -1237,7 +1247,7 @@ _mcd_channel_get_target_id (McdChannel *channel)
McdChannelRequestData *crd;
g_return_val_if_fail (MCD_IS_CHANNEL (channel), NULL);
- crd = g_object_get_data ((GObject *)channel, CD_REQUEST);
+ crd = channel->priv->request_data;
if (G_UNLIKELY (!crd || !crd->properties)) return NULL;
return tp_asv_get_string (crd->properties, TP_IFACE_CHANNEL ".TargetID");
}
@@ -1321,8 +1331,7 @@ mcd_channel_new_request (GHashTable *properties, guint64 user_time,
crd->properties = g_hash_table_ref (properties);
crd->user_time = user_time;
crd->preferred_handler = g_strdup (preferred_handler);
- g_object_set_data_full ((GObject *)channel, CD_REQUEST,
- crd, (GDestroyNotify)channel_request_data_free);
+ channel->priv->request_data = crd;
mcd_channel_set_status (channel, MCD_CHANNEL_STATUS_REQUEST);
@@ -1341,7 +1350,7 @@ _mcd_channel_get_requested_properties (McdChannel *channel)
McdChannelRequestData *crd;
g_return_val_if_fail (MCD_IS_CHANNEL (channel), NULL);
- crd = g_object_get_data ((GObject *)channel, CD_REQUEST);
+ crd = channel->priv->request_data;
if (G_UNLIKELY (!crd)) return NULL;
return crd->properties;
}
@@ -1376,7 +1385,7 @@ _mcd_channel_get_satisfied_requests (McdChannel *channel)
McdChannelRequestData *crd;
g_return_val_if_fail (MCD_IS_CHANNEL (channel), NULL);
- crd = g_object_get_data ((GObject *)channel, CD_REQUEST);
+ crd = channel->priv->request_data;
if (G_UNLIKELY (!crd)) return NULL;
return crd->paths;
}
@@ -1394,7 +1403,7 @@ _mcd_channel_get_request_user_action_time (McdChannel *channel)
McdChannelRequestData *crd;
g_return_val_if_fail (MCD_IS_CHANNEL (channel), 0);
- crd = g_object_get_data ((GObject *)channel, CD_REQUEST);
+ crd = channel->priv->request_data;
if (G_UNLIKELY (!crd)) return 0;
return crd->user_time;
}
@@ -1412,7 +1421,7 @@ _mcd_channel_get_request_preferred_handler (McdChannel *channel)
McdChannelRequestData *crd;
g_return_val_if_fail (MCD_IS_CHANNEL (channel), NULL);
- crd = g_object_get_data ((GObject *)channel, CD_REQUEST);
+ crd = channel->priv->request_data;
if (G_UNLIKELY (!crd)) return NULL;
return crd->preferred_handler;
}
@@ -1431,7 +1440,7 @@ _mcd_channel_set_request_use_existing (McdChannel *channel,
McdChannelRequestData *crd;
g_return_if_fail (MCD_IS_CHANNEL (channel));
- crd = g_object_get_data ((GObject *)channel, CD_REQUEST);
+ crd = channel->priv->request_data;
if (G_UNLIKELY (!crd)) return;
crd->use_existing = use_existing;
}
@@ -1449,7 +1458,7 @@ _mcd_channel_get_request_use_existing (McdChannel *channel)
McdChannelRequestData *crd;
g_return_val_if_fail (MCD_IS_CHANNEL (channel), FALSE);
- crd = g_object_get_data ((GObject *)channel, CD_REQUEST);
+ crd = channel->priv->request_data;
if (G_UNLIKELY (!crd)) return FALSE;
return crd->use_existing;
}
@@ -1549,7 +1558,7 @@ _mcd_channel_set_request_proxy (McdChannel *channel, McdChannel *source)
if (G_LIKELY (request_path))
{
McdChannelRequestData *crd;
- crd = g_object_get_data ((GObject *)source, CD_REQUEST);
+ crd = source->priv->request_data;
if (G_LIKELY (crd))
crd->paths = g_list_prepend (crd->paths, g_strdup (request_path));
}
--
1.5.6.5
More information about the Telepathy-commits
mailing list