[telepathy-mission-control/master] McdDispatchOperation: add a method to dup channel details

Simon McVittie simon.mcvittie at collabora.co.uk
Mon Apr 20 07:14:32 PDT 2009


---
 src/mcd-dispatch-operation-priv.h |    2 ++
 src/mcd-dispatch-operation.c      |   20 +++++++++++++++-----
 2 files changed, 17 insertions(+), 5 deletions(-)

diff --git a/src/mcd-dispatch-operation-priv.h b/src/mcd-dispatch-operation-priv.h
index 5d61977..36b4fd0 100644
--- a/src/mcd-dispatch-operation-priv.h
+++ b/src/mcd-dispatch-operation-priv.h
@@ -33,6 +33,8 @@ G_GNUC_INTERNAL McdDispatchOperation *_mcd_dispatch_operation_new (
 G_GNUC_INTERNAL void _mcd_dispatch_operation_lose_channel (
     McdDispatchOperation *self, McdChannel *channel, GList **channels);
 
+G_GNUC_INTERNAL GPtrArray *_mcd_dispatch_operation_dup_channel_details (
+    McdDispatchOperation *self);
 G_GNUC_INTERNAL void _mcd_dispatch_operation_block_finished (
     McdDispatchOperation *self);
 G_GNUC_INTERNAL void _mcd_dispatch_operation_unblock_finished (
diff --git a/src/mcd-dispatch-operation.c b/src/mcd-dispatch-operation.c
index 2dbfa92..9702d0f 100644
--- a/src/mcd-dispatch-operation.c
+++ b/src/mcd-dispatch-operation.c
@@ -134,16 +134,15 @@ get_account (TpSvcDBusProperties *self, const gchar *name, GValue *value)
         g_value_set_static_boxed (value, "/");
 }
 
-static void
-get_channels (TpSvcDBusProperties *self, const gchar *name, GValue *value)
+GPtrArray *
+_mcd_dispatch_operation_dup_channel_details (McdDispatchOperation *self)
 {
     McdDispatchOperationPrivate *priv = MCD_DISPATCH_OPERATION_PRIV (self);
     GPtrArray *channel_array;
     GList *list;
 
-    DEBUG ("called for %s", priv->unique_name);
-
     channel_array = g_ptr_array_sized_new (g_list_length (priv->channels));
+
     for (list = priv->channels; list != NULL; list = list->next)
     {
         McdChannel *channel = MCD_CHANNEL (list->data);
@@ -163,8 +162,19 @@ get_channels (TpSvcDBusProperties *self, const gchar *name, GValue *value)
         g_ptr_array_add (channel_array, g_value_get_boxed (&channel_val));
     }
 
+    return channel_array;
+}
+
+static void
+get_channels (TpSvcDBusProperties *iface, const gchar *name, GValue *value)
+{
+    McdDispatchOperation *self = MCD_DISPATCH_OPERATION (iface);
+
+    DEBUG ("called for %s", self->priv->unique_name);
+
     g_value_init (value, TP_ARRAY_TYPE_CHANNEL_DETAILS_LIST);
-    g_value_take_boxed (value, channel_array);
+    g_value_take_boxed (value,
+                        _mcd_dispatch_operation_dup_channel_details (self));
 }
 
 static void
-- 
1.5.6.5




More information about the telepathy-commits mailing list