[Telepathy-commits] [telepathy-gabble/master] GabbleMediaFactory: reduce dependence on TpChannelFactoryIface for close_all

Simon McVittie simon.mcvittie at collabora.co.uk
Tue Aug 19 10:54:20 PDT 2008


20080728164733-53eee-a75cd4c413c9a75237b607b695b117db80b52d8d.gz
---
 src/media-factory.c |   13 +++++++++----
 1 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/src/media-factory.c b/src/media-factory.c
index d6523cb..62372c4 100644
--- a/src/media-factory.c
+++ b/src/media-factory.c
@@ -100,6 +100,9 @@ gabble_media_factory_init (GabbleMediaFactory *fac)
 }
 
 
+static void gabble_media_factory_close_all (GabbleMediaFactory *fac);
+
+
 static void
 gabble_media_factory_dispose (GObject *object)
 {
@@ -115,7 +118,7 @@ gabble_media_factory_dispose (GObject *object)
   g_assert (priv->jingle_cb == NULL);
   g_assert (priv->jingle_info_cb == NULL);
 
-  tp_channel_factory_iface_close_all (TP_CHANNEL_FACTORY_IFACE (object));
+  gabble_media_factory_close_all (fac);
   g_assert (priv->channels == NULL);
 
   if (priv->session_chans)
@@ -667,9 +670,8 @@ jingle_info_iq_callback (LmMessageHandler *handler,
 
 
 static void
-gabble_media_factory_iface_close_all (TpChannelFactoryIface *iface)
+gabble_media_factory_close_all (GabbleMediaFactory *fac)
 {
-  GabbleMediaFactory *fac = GABBLE_MEDIA_FACTORY (iface);
   GabbleMediaFactoryPrivate *priv = GABBLE_MEDIA_FACTORY_GET_PRIVATE (fac);
 
   DEBUG ("closing channels");
@@ -764,6 +766,8 @@ connection_status_changed_cb (GabbleConnection *conn,
       break;
 
     case TP_CONNECTION_STATUS_DISCONNECTED:
+      gabble_media_factory_close_all (self);
+
       /* this can be called before we have ever been CONNECTING, so we need
        * to guard it */
       if (priv->jingle_cb != NULL)
@@ -873,7 +877,8 @@ gabble_media_factory_iface_init (gpointer g_iface,
 {
   TpChannelFactoryIfaceClass *klass = (TpChannelFactoryIfaceClass *) g_iface;
 
-  klass->close_all = gabble_media_factory_iface_close_all;
+  klass->close_all =
+      (TpChannelFactoryIfaceProc) gabble_media_factory_close_all;
   klass->foreach = gabble_media_factory_iface_foreach;
   klass->request = gabble_media_factory_iface_request;
 }
-- 
1.5.6.3




More information about the Telepathy-commits mailing list