[telepathy-mission-control/master] McdAccount: fd.o #21377: add support for deserializing doubles and object paths

Simon McVittie simon.mcvittie at collabora.co.uk
Wed Jun 10 03:43:06 PDT 2009


---
 src/mcd-account.c |   22 ++++++++++++++++++++++
 1 files changed, 22 insertions(+), 0 deletions(-)

diff --git a/src/mcd-account.c b/src/mcd-account.c
index b04a269..05e1d9d 100644
--- a/src/mcd-account.c
+++ b/src/mcd-account.c
@@ -371,6 +371,7 @@ get_parameter (McdAccount *account, const gchar *name, GValue *value)
         gint64 v_int = 0;
         guint64 v_uint = 0;
         gboolean v_bool = FALSE;
+        double v_double = 0.0;
 
         switch (G_VALUE_TYPE (value))
         {
@@ -427,6 +428,13 @@ get_parameter (McdAccount *account, const gchar *name, GValue *value)
                                              key, NULL);
             g_value_set_boolean (value, v_bool);
             break;
+
+        case G_TYPE_DOUBLE:
+            v_double = g_key_file_get_double (priv->keyfile, priv->unique_name,
+                                             key, NULL);
+            g_value_set_double (value, v_double);
+            break;
+
         default:
             if (G_VALUE_HOLDS (value, G_TYPE_STRV))
             {
@@ -436,6 +444,20 @@ get_parameter (McdAccount *account, const gchar *name, GValue *value)
 
                 g_value_take_boxed (value, v);
             }
+            else if (G_VALUE_HOLDS (value, DBUS_TYPE_G_OBJECT_PATH))
+            {
+                v_string = g_key_file_get_string (priv->keyfile,
+                                                  priv->unique_name, key,
+                                                  NULL);
+
+                if (!tp_dbus_check_valid_object_path (v_string, NULL))
+                {
+                    g_free (v_string);
+                    return FALSE;
+                }
+
+                g_value_take_boxed (value, v_string);
+            }
             else
             {
                 g_warning ("%s: skipping parameter %s, unknown type %s",
-- 
1.5.6.5




More information about the telepathy-commits mailing list