[Telepathy-commits] [telepathy-mission-control/master] Virtualize mcd_account_set_parameter()

Alberto Mardegan alberto.mardegan at nokia.com
Fri Dec 5 04:07:17 PST 2008


---
 src/mcd-account.c |   73 +++++++++++++++++++++++++++++------------------------
 src/mcd-account.h |    3 +-
 2 files changed, 42 insertions(+), 34 deletions(-)

diff --git a/src/mcd-account.c b/src/mcd-account.c
index 776d557..0c675cb 100644
--- a/src/mcd-account.c
+++ b/src/mcd-account.c
@@ -153,6 +153,44 @@ enum
 
 guint _mcd_account_signals[LAST_SIGNAL] = { 0 };
 
+static void
+set_parameter (McdAccount *account, const gchar *name, const GValue *value)
+{
+    McdAccountPrivate *priv = account->priv;
+    gchar key[MAX_KEY_LENGTH];
+
+    g_snprintf (key, sizeof (key), "param-%s", name);
+
+    if (!value)
+    {
+        g_key_file_remove_key (priv->keyfile, priv->unique_name, key, NULL);
+        g_debug ("unset param %s", name);
+        return;
+    }
+
+    switch (G_VALUE_TYPE (value))
+    {
+    case G_TYPE_STRING:
+	g_key_file_set_string (priv->keyfile, priv->unique_name, key,
+			       g_value_get_string (value));
+	break;
+    case G_TYPE_UINT:
+	g_key_file_set_integer (priv->keyfile, priv->unique_name, key,
+				g_value_get_uint (value));
+	break;
+    case G_TYPE_INT:
+	g_key_file_set_integer (priv->keyfile, priv->unique_name, key,
+				g_value_get_int (value));
+	break;
+    case G_TYPE_BOOLEAN:
+	g_key_file_set_boolean (priv->keyfile, priv->unique_name, key,
+				g_value_get_boolean (value));
+	break;
+    default:
+	g_warning ("Unexpected param type %s", G_VALUE_TYPE_NAME (value));
+    }
+}
+
 static gboolean
 get_parameter (McdAccount *account, const gchar *name, GValue *value)
 {
@@ -1085,39 +1123,7 @@ void
 mcd_account_set_parameter (McdAccount *account, const gchar *name,
                            const GValue *value)
 {
-    McdAccountPrivate *priv = account->priv;
-    gchar key[MAX_KEY_LENGTH];
-
-    g_snprintf (key, sizeof (key), "param-%s", name);
-
-    if (!value)
-    {
-        g_key_file_remove_key (priv->keyfile, priv->unique_name, key, NULL);
-        g_debug ("unset param %s", name);
-        return;
-    }
-
-    switch (G_VALUE_TYPE (value))
-    {
-    case G_TYPE_STRING:
-	g_key_file_set_string (priv->keyfile, priv->unique_name, key,
-			       g_value_get_string (value));
-	break;
-    case G_TYPE_UINT:
-	g_key_file_set_integer (priv->keyfile, priv->unique_name, key,
-				g_value_get_uint (value));
-	break;
-    case G_TYPE_INT:
-	g_key_file_set_integer (priv->keyfile, priv->unique_name, key,
-				g_value_get_int (value));
-	break;
-    case G_TYPE_BOOLEAN:
-	g_key_file_set_boolean (priv->keyfile, priv->unique_name, key,
-				g_value_get_boolean (value));
-	break;
-    default:
-	g_warning ("Unexpected param type %s", G_VALUE_TYPE_NAME (value));
-    }
+    MCD_ACCOUNT_GET_CLASS (account)->set_parameter (account, name, value);
 }
 
 gboolean
@@ -1444,6 +1450,7 @@ mcd_account_class_init (McdAccountClass * klass)
     object_class->get_property = get_property;
 
     klass->get_parameter = get_parameter;
+    klass->set_parameter = set_parameter;
     klass->delete = _mcd_account_delete;
 
     g_object_class_install_property
diff --git a/src/mcd-account.h b/src/mcd-account.h
index e2297cf..ac80d9e 100644
--- a/src/mcd-account.h
+++ b/src/mcd-account.h
@@ -55,8 +55,9 @@ struct _McdAccountClass
     GObjectClass parent_class;
     gboolean (*get_parameter) (McdAccount *account, const gchar *name,
                                GValue *value);
+    void (*set_parameter) (McdAccount *account, const gchar *name,
+                           const GValue *value);
     gboolean (*delete) (McdAccount *account, GError **error);
-    void (*_mc_reserved3) (void);
     void (*_mc_reserved4) (void);
     void (*_mc_reserved5) (void);
     void (*_mc_reserved6) (void);
-- 
1.5.6.5




More information about the Telepathy-commits mailing list