[telepathy-salut/master] make salut_tubes_channel_tube_request more generic

Guillaume Desmottes guillaume.desmottes at collabora.co.uk
Fri Jun 26 07:28:06 PDT 2009


---
 src/salut-muc-manager.c   |    4 ++--
 src/salut-tubes-channel.c |   15 +++++++++++++--
 src/salut-tubes-channel.h |    3 ++-
 src/salut-tubes-manager.c |    2 +-
 4 files changed, 18 insertions(+), 6 deletions(-)

diff --git a/src/salut-muc-manager.c b/src/salut-muc-manager.c
index 85c41a1..8050974 100644
--- a/src/salut-muc-manager.c
+++ b/src/salut-muc-manager.c
@@ -865,8 +865,8 @@ salut_muc_manager_request (SalutMucManager *self,
         }
 
       g_assert (tubes_chan != NULL);
-      new_channel = salut_tubes_channel_tube_request (tubes_chan, channel_type,
-          service);
+      new_channel = salut_tubes_channel_tube_request (tubes_chan, request_token,
+          request_properties, require_new);
       g_assert (new_channel != NULL);
 
       /* announce channels */
diff --git a/src/salut-tubes-channel.c b/src/salut-tubes-channel.c
index 6e24310..02f4532 100644
--- a/src/salut-tubes-channel.c
+++ b/src/salut-tubes-channel.c
@@ -1002,26 +1002,37 @@ generate_tube_id (void)
 
 SalutTubeIface *
 salut_tubes_channel_tube_request (SalutTubesChannel *self,
-                                  const gchar *channel_type,
-                                  const gchar *service)
+    gpointer request_token,
+    GHashTable *request_properties,
+    gboolean require_new)
 {
   SalutTubesChannelPrivate *priv = SALUT_TUBES_CHANNEL_GET_PRIVATE (self);
   SalutTubeIface *tube;
+  const gchar *channel_type;
+  const gchar *service;
   guint tube_id;
   TpTubeType type;
   GHashTable *parameters;
 
   tube_id = generate_tube_id ();
 
+  channel_type = tp_asv_get_string (request_properties,
+      TP_IFACE_CHANNEL ".ChannelType");
+
   if (!tp_strdiff (channel_type, TP_IFACE_CHANNEL_TYPE_STREAM_TUBE))
     {
       type = TP_TUBE_TYPE_STREAM;
+      service = tp_asv_get_string (request_properties,
+          TP_IFACE_CHANNEL_TYPE_STREAM_TUBE ".Service");
+
     }
 /* Temporarily disabled since the implementation is incomplete */
 #if 0
   else if (!tp_strdiff (channel_type, TP_IFACE_CHANNEL_TYPE_DBUS_TUBE))
     {
       type = TP_TUBE_TYPE_DBUS;
+      service = tp_asv_get_string (request_properties,
+          TP_IFACE_CHANNEL_TYPE_DBUS_TUBE ".ServiceName");
     }
 #endif
   else
diff --git a/src/salut-tubes-channel.h b/src/salut-tubes-channel.h
index 32cf59b..8c10fc1 100644
--- a/src/salut-tubes-channel.h
+++ b/src/salut-tubes-channel.h
@@ -86,7 +86,8 @@ void salut_tubes_channel_message_close_received (SalutTubesChannel *self,
     TpHandle initiator_handle, guint tube_id);
 
 SalutTubeIface *salut_tubes_channel_tube_request (SalutTubesChannel *self,
-    const gchar *channel_type, const gchar *service);
+    gpointer request_token, GHashTable *request_properties,
+    gboolean require_new);
 
 void salut_tubes_channel_send_iq_offer (SalutTubesChannel *self);
 
diff --git a/src/salut-tubes-manager.c b/src/salut-tubes-manager.c
index ce2c2a5..680d9fe 100644
--- a/src/salut-tubes-manager.c
+++ b/src/salut-tubes-manager.c
@@ -1059,7 +1059,7 @@ salut_tubes_manager_requestotron (SalutTubesManager *self,
         }
 
       new_channel = salut_tubes_channel_tube_request (tubes_channel,
-          channel_type, service);
+          request_token, request_properties, require_new);
       g_assert (new_channel != NULL);
 
       if (request_token != NULL)
-- 
1.5.6.5




More information about the telepathy-commits mailing list