[Telepathy-commits] [telepathy-gabble/master] GabbleTubesChannel: implement GabbleExportableChannel

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


20080725151047-53eee-eb91762fe7499d04ff07cb21faf95eff16994b12.gz
---
 src/tubes-channel.c |   27 +++++++++++++++++++++++++++
 1 files changed, 27 insertions(+), 0 deletions(-)

diff --git a/src/tubes-channel.c b/src/tubes-channel.c
index ca71f03..b7bd6d0 100644
--- a/src/tubes-channel.c
+++ b/src/tubes-channel.c
@@ -46,6 +46,7 @@
 #include "bytestream-factory.h"
 #include "connection.h"
 #include "debug.h"
+#include "exportable-channel.h"
 #include "namespaces.h"
 #include "presence-cache.h"
 #include "presence.h"
@@ -69,6 +70,7 @@ G_DEFINE_TYPE_WITH_CODE (GabbleTubesChannel, gabble_tubes_channel,
     G_IMPLEMENT_INTERFACE (TP_TYPE_SVC_CHANNEL_TYPE_TUBES, tubes_iface_init);
     G_IMPLEMENT_INTERFACE (TP_TYPE_SVC_CHANNEL_INTERFACE_GROUP,
         tp_external_group_mixin_iface_init);
+    G_IMPLEMENT_INTERFACE (GABBLE_TYPE_EXPORTABLE_CHANNEL, NULL);
     G_IMPLEMENT_INTERFACE (TP_TYPE_CHANNEL_IFACE, NULL));
 
 static const gchar *gabble_tubes_channel_interfaces[] = {
@@ -94,6 +96,8 @@ enum
   PROP_MUC,
   PROP_INITIATOR_HANDLE,
   PROP_INITIATOR_ID,
+  PROP_CHANNEL_DESTROYED,
+  PROP_CHANNEL_PROPERTIES,
   LAST_PROPERTY,
 };
 
@@ -262,6 +266,21 @@ gabble_tubes_channel_get_property (GObject *object,
         g_value_set_boolean (value,
             (priv->initiator == base_conn->self_handle));
         break;
+      case PROP_CHANNEL_DESTROYED:
+        g_value_set_boolean (value, priv->closed);
+        break;
+      case PROP_CHANNEL_PROPERTIES:
+        g_value_set_boxed (value,
+            gabble_tp_dbus_properties_mixin_make_properties_hash (object,
+                TP_IFACE_CHANNEL, "TargetHandle",
+                TP_IFACE_CHANNEL, "TargetHandleType",
+                TP_IFACE_CHANNEL, "ChannelType",
+                GABBLE_IFACE_CHANNEL_FUTURE, "TargetID",
+                GABBLE_IFACE_CHANNEL_FUTURE, "InitiatorHandle",
+                GABBLE_IFACE_CHANNEL_FUTURE, "InitiatorID",
+                GABBLE_IFACE_CHANNEL_FUTURE, "Requested",
+                NULL));
+        break;
       default:
         G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
         break;
@@ -303,6 +322,9 @@ gabble_tubes_channel_set_property (GObject *object,
       case PROP_INITIATOR_HANDLE:
         priv->initiator = g_value_get_uint (value);
         break;
+      case PROP_CHANNEL_PROPERTIES:
+        /* FIXME: Setting channel-properties on creation not yet implemented */
+        break;
       default:
         G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
         break;
@@ -2478,6 +2500,11 @@ gabble_tubes_channel_class_init (
       "handle-type");
   g_object_class_override_property (object_class, PROP_HANDLE, "handle");
 
+  g_object_class_override_property (object_class, PROP_CHANNEL_DESTROYED,
+      "channel-destroyed");
+  g_object_class_override_property (object_class, PROP_CHANNEL_PROPERTIES,
+      "channel-properties");
+
   param_spec = g_param_spec_object (
       "connection",
       "GabbleConnection object",
-- 
1.5.6.3




More information about the Telepathy-commits mailing list