[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