[Telepathy-commits] [telepathy-mission-control/master] Add private data structure to McAccountManager

mardy mardy at 64d1ce6a-1406-0410-9ac8-afed03b27183
Mon Nov 17 00:05:13 PST 2008


Add McAccountManagerPrivate; we need it because we are going to use the
interface retrieving facilities in dbus-prop.c, which assume that the interface
property data is located in the private data structure.

git-svn-id: https://projects.maemo.org/svn/chavo/trunk/framework/open/telepathy-mission-control@20531 64d1ce6a-1406-0410-9ac8-afed03b27183
---
 libmcclient/mc-account-manager.c |   38 ++++++++++++++++++++++++++------------
 1 files changed, 26 insertions(+), 12 deletions(-)

diff --git a/libmcclient/mc-account-manager.c b/libmcclient/mc-account-manager.c
index 5268662..033b0c6 100644
--- a/libmcclient/mc-account-manager.c
+++ b/libmcclient/mc-account-manager.c
@@ -65,6 +65,10 @@ typedef struct _McAccountManagerProps {
 struct _McAccountManager {
     TpProxy parent;
     /*<private>*/
+    McAccountManagerPrivate *priv;
+};
+
+struct _McAccountManagerPrivate {
     McAccountManagerProps *props;
 };
 
@@ -81,6 +85,9 @@ guint _mc_account_manager_signals[LAST_SIGNAL] = { 0 };
 static void
 mc_account_manager_init (McAccountManager *self)
 {
+    self->priv = G_TYPE_INSTANCE_GET_PRIVATE(self, MC_TYPE_ACCOUNT_MANAGER,
+					     McAccountManagerPrivate);
+
     tp_proxy_add_interface_by_id ((TpProxy *)self,
 	MC_IFACE_QUARK_ACCOUNT_MANAGER_INTERFACE_CREATION);
     tp_proxy_add_interface_by_id ((TpProxy *)self,
@@ -98,10 +105,10 @@ manager_props_free (McAccountManagerProps *props)
 static void
 finalize (GObject *object)
 {
-    McAccountManager *manager = MC_ACCOUNT_MANAGER (object);
+    McAccountManagerPrivate *priv = MC_ACCOUNT_MANAGER (object)->priv;
 
-    if (manager->props)
-	manager_props_free (manager->props);
+    if (priv->props)
+	manager_props_free (priv->props);
 
     G_OBJECT_CLASS (mc_account_manager_parent_class)->finalize (object);
 }
@@ -113,6 +120,7 @@ mc_account_manager_class_init (McAccountManagerClass *klass)
     GObjectClass *object_class = (GObjectClass *)klass;
     TpProxyClass *proxy_class = (TpProxyClass *) klass;
 
+    g_type_class_add_private (object_class, sizeof (McAccountManagerPrivate));
     object_class->finalize = finalize;
 
     /* the API is stateless, so we can keep the same proxy across restarts */
@@ -170,7 +178,7 @@ static void
 update_property (gpointer key, gpointer ht_value, gpointer user_data)
 {
     McAccountManager *manager = user_data;
-    McAccountManagerProps *props = manager->props;
+    McAccountManagerProps *props = manager->priv->props;
     GValue *value = ht_value;
     const gchar *name = key;
 
@@ -193,7 +201,7 @@ create_props (TpProxy *proxy, GHashTable *props)
 {
     McAccountManager *manager = MC_ACCOUNT_MANAGER (proxy);
 
-    manager->props = g_malloc0 (sizeof (McAccountManagerProps));
+    manager->priv->props = g_malloc0 (sizeof (McAccountManagerProps));
     g_hash_table_foreach (props, update_property, manager);
 }
 
@@ -267,7 +275,7 @@ on_account_validity_changed (TpProxy *proxy, const gchar *account_path,
 			     GObject *weak_object)
 {
     McAccountManager *manager = MC_ACCOUNT_MANAGER (proxy);
-    McAccountManagerProps *props = manager->props;
+    McAccountManagerProps *props = manager->priv->props;
     gboolean existed;
 
     if (G_UNLIKELY (!props)) return;
@@ -294,7 +302,7 @@ on_account_removed (TpProxy *proxy, const gchar *account_path,
 		    gpointer user_data, GObject *weak_object)
 {
     McAccountManager *manager = MC_ACCOUNT_MANAGER (proxy);
-    McAccountManagerProps *props = manager->props;
+    McAccountManagerProps *props = manager->priv->props;
 
     if (G_UNLIKELY (!props)) return;
 
@@ -331,7 +339,7 @@ mc_account_manager_call_when_ready (McAccountManager *manager,
     McIfaceData iface_data;
 
     iface_data.id = MC_IFACE_QUARK_ACCOUNT_MANAGER;
-    iface_data.props_data_ptr = (gpointer)&manager->props;
+    iface_data.props_data_ptr = (gpointer)&manager->priv->props;
     iface_data.create_props = create_props;
 
     if (_mc_iface_call_when_ready_int ((TpProxy *)manager,
@@ -360,9 +368,12 @@ mc_account_manager_call_when_ready (McAccountManager *manager,
 const gchar * const *
 mc_account_manager_get_valid_accounts (McAccountManager *manager)
 {
+    McAccountManagerProps *props;
+
     g_return_val_if_fail (MC_IS_ACCOUNT_MANAGER (manager), NULL);
-    if (G_UNLIKELY (!manager->props)) return NULL;
-    return (const gchar * const *)manager->props->valid_accounts;
+    props = manager->priv->props;
+    if (G_UNLIKELY (!props)) return NULL;
+    return (const gchar * const *)props->valid_accounts;
 }
 
 /**
@@ -377,8 +388,11 @@ mc_account_manager_get_valid_accounts (McAccountManager *manager)
 const gchar * const *
 mc_account_manager_get_invalid_accounts (McAccountManager *manager)
 {
+    McAccountManagerProps *props;
+
     g_return_val_if_fail (MC_IS_ACCOUNT_MANAGER (manager), NULL);
-    if (G_UNLIKELY (!manager->props)) return NULL;
-    return (const gchar * const *)manager->props->invalid_accounts;
+    props = manager->priv->props;
+    if (G_UNLIKELY (!props)) return NULL;
+    return (const gchar * const *)props->invalid_accounts;
 }
 
-- 
1.5.6.5




More information about the Telepathy-commits mailing list