[Telepathy-commits] [telepathy-salut/master] Implemented using GObject properties correctly.

Jonny Lamb jonny.lamb at collabora.co.uk
Fri Nov 21 03:46:04 PST 2008


20080717181258-8ed0e-569c6c0e3945b9761719c28e18735a4a19b68c37.gz
---
 src/salut-file-channel.c |  117 +++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 99 insertions(+), 18 deletions(-)

diff --git a/src/salut-file-channel.c b/src/salut-file-channel.c
index 0a1dc0d..1f69cf9 100644
--- a/src/salut-file-channel.c
+++ b/src/salut-file-channel.c
@@ -83,7 +83,16 @@ enum
   PROP_CONTACT,
   PROP_CONNECTION,
   PROP_XMPP_CONNECTION_MANAGER,
-  PROP_INTERFACES,
+  PROP_DIRECTION,
+  PROP_STATE,
+  PROP_CONTENT_TYPE,
+  PROP_FILENAME,
+  PROP_SIZE,
+  PROP_ESTIMATED_SIZE,
+  PROP_CONTENT_MD5,
+  PROP_DESCRIPTION,
+  PROP_AVAILABLE_SOCKET_TYPES,
+  PROP_TRANSFERRED_BYTES,
   LAST_PROPERTY
 };
 
@@ -101,6 +110,19 @@ struct _SalutFileChannelPrivate {
   gchar *local_unix_path;
   /* hash table used to convert from string id to numerical id */
   GHashTable *name_to_id;
+
+  /* properties */
+  SalutFileTransferDirection direction;
+  SalutFileTransferState state;
+  gchar *content_type;
+  gchar *filename;
+  guint size;
+  guint estimated_size;
+  gchar *content_md5;
+  gchar *description;
+  gpointer available_socket_types;
+  guint transferred_bytes;
+
 };
 
 static void
@@ -158,6 +180,36 @@ salut_file_channel_get_property (GObject    *object,
       case PROP_XMPP_CONNECTION_MANAGER:
         g_value_set_object (value, self->priv->xmpp_connection_manager);
         break;
+      case PROP_DIRECTION:
+        g_value_set_uint (value, self->priv->direction);
+        break;
+      case PROP_STATE:
+        g_value_set_uint (value, self->priv->state);
+        break;
+      case PROP_CONTENT_TYPE:
+        g_value_set_string (value, self->priv->content_type);
+        break;
+      case PROP_FILENAME:
+        g_value_set_string (value, self->priv->filename);
+        break;
+      case PROP_SIZE:
+        g_value_set_uint (value, self->priv->size);
+        break;
+      case PROP_ESTIMATED_SIZE:
+        g_value_set_uint (value, self->priv->estimated_size);
+        break;
+      case PROP_CONTENT_MD5:
+        g_value_set_string (value, self->priv->content_md5);
+        break;
+      case PROP_DESCRIPTION:
+        g_value_set_string (value, self->priv->description);
+        break;
+      case PROP_AVAILABLE_SOCKET_TYPES:
+        g_value_set_pointer (value, self->priv->available_socket_types);
+        break;
+      case PROP_TRANSFERRED_BYTES:
+        g_value_set_uint (value, self->priv->transferred_bytes);
+        break;
       default:
         G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
         break;
@@ -203,6 +255,21 @@ salut_file_channel_set_property (GObject *object,
         self->priv->xmpp_connection_manager = g_value_get_object (value);
         g_object_ref (self->priv->xmpp_connection_manager);
         break;
+      case PROP_STATE:
+        self->priv->state = g_value_get_uint (value);
+        break;
+      case PROP_TRANSFERRED_BYTES:
+        self->priv->state = g_value_get_uint (value);
+        break;
+      case PROP_DIRECTION:
+      case PROP_CONTENT_TYPE:
+      case PROP_FILENAME:
+      case PROP_SIZE:
+      case PROP_ESTIMATED_SIZE:
+      case PROP_CONTENT_MD5:
+      case PROP_DESCRIPTION:
+      case PROP_AVAILABLE_SOCKET_TYPES:
+        break;
       default:
         G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
         break;
@@ -343,16 +410,18 @@ salut_file_channel_class_init (SalutFileChannelClass *salut_file_channel_class)
   g_object_class_install_property (object_class, PROP_XMPP_CONNECTION_MANAGER,
       param_spec);
 
-  param_spec = g_param_spec_object (
+  param_spec = g_param_spec_uint (
       "state",
       "SalutFileTransferState state",
       "State of the file transfer in this channel",
-      G_TYPE_UINT,
+      0,
+      G_MAXUINT,
+      0,
       G_PARAM_CONSTRUCT |
       G_PARAM_READWRITE |
       G_PARAM_STATIC_NICK |
       G_PARAM_STATIC_BLURB);
-  g_object_class_install_property (object_class, PROP_INTERFACES, param_spec);
+  g_object_class_install_property (object_class, PROP_STATE, param_spec);
 
   param_spec = g_param_spec_string (
       "content-type",
@@ -360,10 +429,10 @@ salut_file_channel_class_init (SalutFileChannelClass *salut_file_channel_class)
       "ContentType of the file",
       "",
       G_PARAM_CONSTRUCT_ONLY |
-      G_PARAM_READABLE |
+      G_PARAM_READWRITE |
       G_PARAM_STATIC_NICK |
       G_PARAM_STATIC_BLURB);
-  g_object_class_install_property (object_class, PROP_INTERFACES, param_spec);
+  g_object_class_install_property (object_class, PROP_CONTENT_TYPE, param_spec);
 
   param_spec = g_param_spec_string (
       "filename",
@@ -371,10 +440,10 @@ salut_file_channel_class_init (SalutFileChannelClass *salut_file_channel_class)
       "Name of the file",
       "",
       G_PARAM_CONSTRUCT_ONLY |
-      G_PARAM_READABLE |
+      G_PARAM_READWRITE |
       G_PARAM_STATIC_NICK |
       G_PARAM_STATIC_BLURB);
-  g_object_class_install_property (object_class, PROP_INTERFACES, param_spec);
+  g_object_class_install_property (object_class, PROP_FILENAME, param_spec);
 
   param_spec = g_param_spec_uint (
       "size",
@@ -384,10 +453,10 @@ salut_file_channel_class_init (SalutFileChannelClass *salut_file_channel_class)
       G_MAXUINT,
       0,
       G_PARAM_CONSTRUCT_ONLY |
-      G_PARAM_READABLE |
+      G_PARAM_READWRITE |
       G_PARAM_STATIC_NICK |
       G_PARAM_STATIC_BLURB);
-  g_object_class_install_property (object_class, PROP_INTERFACES, param_spec);
+  g_object_class_install_property (object_class, PROP_SIZE, param_spec);
 
   param_spec = g_param_spec_uint (
       "estimated-size",
@@ -397,10 +466,10 @@ salut_file_channel_class_init (SalutFileChannelClass *salut_file_channel_class)
       G_MAXUINT,
       0,
       G_PARAM_CONSTRUCT_ONLY |
-      G_PARAM_READABLE |
+      G_PARAM_READWRITE |
       G_PARAM_STATIC_NICK |
       G_PARAM_STATIC_BLURB);
-  g_object_class_install_property (object_class, PROP_INTERFACES, param_spec);
+  g_object_class_install_property (object_class, PROP_ESTIMATED_SIZE, param_spec);
 
   param_spec = g_param_spec_string (
       "content-md5",
@@ -408,10 +477,10 @@ salut_file_channel_class_init (SalutFileChannelClass *salut_file_channel_class)
       "md5sum of the file contents",
       "",
       G_PARAM_CONSTRUCT_ONLY |
-      G_PARAM_READABLE |
+      G_PARAM_READWRITE |
       G_PARAM_STATIC_NICK |
       G_PARAM_STATIC_BLURB);
-  g_object_class_install_property (object_class, PROP_INTERFACES, param_spec);
+  g_object_class_install_property (object_class, PROP_CONTENT_MD5, param_spec);
 
   param_spec = g_param_spec_string (
       "description",
@@ -419,20 +488,32 @@ salut_file_channel_class_init (SalutFileChannelClass *salut_file_channel_class)
       "Description of the file",
       "",
       G_PARAM_CONSTRUCT_ONLY |
-      G_PARAM_READABLE |
+      G_PARAM_READWRITE |
       G_PARAM_STATIC_NICK |
       G_PARAM_STATIC_BLURB);
-  g_object_class_install_property (object_class, PROP_INTERFACES, param_spec);
+  g_object_class_install_property (object_class, PROP_DESCRIPTION, param_spec);
 
   param_spec = g_param_spec_pointer (
       "available-socket-types",
       "SalutSupportedSocketMap available-socket-types",
       "Available socket types",
       G_PARAM_CONSTRUCT_ONLY |
-      G_PARAM_READABLE |
+      G_PARAM_READWRITE |
+      G_PARAM_STATIC_NICK |
+      G_PARAM_STATIC_BLURB);
+  g_object_class_install_property (object_class, PROP_AVAILABLE_SOCKET_TYPES, param_spec);
+
+  param_spec = g_param_spec_uint (
+      "transferred-bytes",
+      "guint transferred-bytes",
+      "Bytes transferred",
+      0,
+      G_MAXUINT,
+      0,
+      G_PARAM_READWRITE |
       G_PARAM_STATIC_NICK |
       G_PARAM_STATIC_BLURB);
-  g_object_class_install_property (object_class, PROP_INTERFACES, param_spec);
+  g_object_class_install_property (object_class, PROP_TRANSFERRED_BYTES, param_spec);
 
   salut_file_channel_class->dbus_props_class.interfaces = prop_interfaces;
   tp_dbus_properties_mixin_class_init (object_class,
-- 
1.5.6.5




More information about the Telepathy-commits mailing list