[Telepathy-commits] [telepathy-haze/master] HazeContactListChannel: be a TpExportableChannel

Simon McVittie simon.mcvittie at collabora.co.uk
Mon Mar 23 02:44:08 PDT 2009


---
 src/contact-list-channel.c |   27 +++++++++++++++++++++++++--
 1 files changed, 25 insertions(+), 2 deletions(-)

diff --git a/src/contact-list-channel.c b/src/contact-list-channel.c
index f83c1de..b08b4f4 100644
--- a/src/contact-list-channel.c
+++ b/src/contact-list-channel.c
@@ -19,6 +19,7 @@
  */
 
 #include <telepathy-glib/dbus.h>
+#include <telepathy-glib/exportable-channel.h>
 #include <telepathy-glib/interfaces.h>
 #include <telepathy-glib/channel-iface.h>
 #include <telepathy-glib/svc-generic.h>
@@ -98,7 +99,7 @@ G_DEFINE_TYPE_WITH_CODE (HazeContactListChannel,
         tp_group_mixin_iface_init);
     G_IMPLEMENT_INTERFACE (TP_TYPE_SVC_DBUS_PROPERTIES,
         tp_dbus_properties_mixin_iface_init);
-    )
+    G_IMPLEMENT_INTERFACE (TP_TYPE_EXPORTABLE_CHANNEL, NULL))
 
 const char *haze_contact_list_channel_interfaces[] = {
     TP_IFACE_CHANNEL_INTERFACE_GROUP,
@@ -118,6 +119,8 @@ enum {
     PROP_REQUESTED,
     PROP_INITIATOR_HANDLE,
     PROP_INITIATOR_ID,
+    PROP_CHANNEL_PROPERTIES,
+    PROP_CHANNEL_DESTROYED,
 
     LAST_PROPERTY
 };
@@ -661,6 +664,22 @@ haze_contact_list_channel_get_property (GObject    *object,
         case PROP_INTERFACES:
             g_value_set_boxed (value, haze_contact_list_channel_interfaces);
             break;
+        case PROP_CHANNEL_DESTROYED:
+            g_value_set_boolean (value, priv->closed);
+            break;
+        case PROP_CHANNEL_PROPERTIES:
+            g_value_take_boxed (value,
+                tp_dbus_properties_mixin_make_properties_hash (object,
+                    TP_IFACE_CHANNEL, "TargetHandle",
+                    TP_IFACE_CHANNEL, "TargetHandleType",
+                    TP_IFACE_CHANNEL, "ChannelType",
+                    TP_IFACE_CHANNEL, "TargetID",
+                    TP_IFACE_CHANNEL, "InitiatorHandle",
+                    TP_IFACE_CHANNEL, "InitiatorID",
+                    TP_IFACE_CHANNEL, "Requested",
+                    TP_IFACE_CHANNEL, "Interfaces",
+                    NULL));
+            break;
         default:
             G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
             break;
@@ -785,6 +804,10 @@ haze_contact_list_channel_class_init (HazeContactListChannelClass *klass)
     g_object_class_override_property (object_class, PROP_HANDLE_TYPE,
             "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");
 
 
     tp_group_mixin_class_init (object_class,
@@ -805,7 +828,7 @@ haze_contact_list_channel_class_init (HazeContactListChannelClass *klass)
 
 static void
 haze_contact_list_channel_close (TpSvcChannel *iface,
-                             DBusGMethodInvocation *context)
+                                 DBusGMethodInvocation *context)
 {
     HazeContactListChannel *self = HAZE_CONTACT_LIST_CHANNEL (iface);
     HazeContactListChannelPrivate *priv;
-- 
1.5.6.5




More information about the telepathy-commits mailing list