[next] telepathy-glib: account: merge storage-identifier-variant to storage-identifier

Guillaume Desmottes gdesmott at kemper.freedesktop.org
Thu Feb 13 17:00:31 CET 2014


Module: telepathy-glib
Branch: next
Commit: e149811344368cf5be97293fbd6e991c9c551e7f
URL:    http://cgit.freedesktop.org/telepathy/telepathy-glib/commit/?id=e149811344368cf5be97293fbd6e991c9c551e7f

Author: Guillaume Desmottes <guillaume.desmottes at collabora.co.uk>
Date:   Mon Feb 10 18:18:26 2014 +0100

account: merge storage-identifier-variant to storage-identifier

---

 .../telepathy-glib/telepathy-glib-sections.txt     |    1 -
 telepathy-glib/account.c                           |   88 ++++----------------
 telepathy-glib/account.h                           |    3 +-
 tests/dbus/account.c                               |   23 ++---
 4 files changed, 22 insertions(+), 93 deletions(-)

diff --git a/docs/reference/telepathy-glib/telepathy-glib-sections.txt b/docs/reference/telepathy-glib/telepathy-glib-sections.txt
index 9ea6a21..9cffa4e 100644
--- a/docs/reference/telepathy-glib/telepathy-glib-sections.txt
+++ b/docs/reference/telepathy-glib/telepathy-glib-sections.txt
@@ -4044,7 +4044,6 @@ tp_account_set_uri_scheme_association_finish
 TP_ACCOUNT_FEATURE_STORAGE
 tp_account_get_storage_provider
 tp_account_get_storage_identifier
-tp_account_dup_storage_identifier_variant
 tp_account_get_storage_restrictions
 tp_account_get_storage_specific_information_async
 tp_account_get_storage_specific_information_finish
diff --git a/telepathy-glib/account.c b/telepathy-glib/account.c
index 17b5e16..1dc4b93 100644
--- a/telepathy-glib/account.c
+++ b/telepathy-glib/account.c
@@ -134,7 +134,7 @@ struct _TpAccountPrivate {
   GHashTable *parameters;
 
   gchar *storage_provider;
-  GValue *storage_identifier;
+  GVariant *storage_identifier;
   TpStorageRestrictionFlags storage_restrictions;
 
   GStrv uri_schemes;
@@ -184,7 +184,6 @@ enum {
   PROP_NORMALIZED_NAME,
   PROP_STORAGE_PROVIDER,
   PROP_STORAGE_IDENTIFIER,
-  PROP_STORAGE_IDENTIFIER_VARIANT,
   PROP_STORAGE_RESTRICTIONS,
   PROP_SUPERSEDES,
   PROP_URI_SCHEMES,
@@ -587,8 +586,13 @@ _tp_account_got_all_storage_cb (TpProxy *proxy,
 
   if (!tp_str_empty (self->priv->storage_provider))
     {
-      self->priv->storage_identifier = tp_g_value_slice_dup (
-          tp_asv_get_boxed (properties, "StorageIdentifier", G_TYPE_VALUE));
+      const GValue *v;
+
+      v = tp_asv_get_boxed (properties, "StorageIdentifier", G_TYPE_VALUE);
+      if (v != NULL)
+        self->priv->storage_identifier = g_variant_ref_sink (
+            dbus_g_value_build_g_variant (v));
+
       self->priv->storage_restrictions = tp_asv_get_uint32 (properties,
           "StorageRestrictions", NULL);
     }
@@ -1232,11 +1236,7 @@ _tp_account_get_property (GObject *object,
       g_value_set_string (value, self->priv->storage_provider);
       break;
     case PROP_STORAGE_IDENTIFIER:
-      g_value_set_boxed (value, self->priv->storage_identifier);
-      break;
-    case PROP_STORAGE_IDENTIFIER_VARIANT:
-      g_value_take_variant (value,
-          tp_account_dup_storage_identifier_variant (self));
+      g_value_set_variant (value, self->priv->storage_identifier);
       break;
     case PROP_STORAGE_RESTRICTIONS:
       g_value_set_uint (value, self->priv->storage_restrictions);
@@ -1294,7 +1294,7 @@ _tp_account_finalize (GObject *object)
   tp_clear_pointer (&priv->error_details, g_hash_table_unref);
 
   g_free (priv->storage_provider);
-  tp_clear_pointer (&priv->storage_identifier, tp_g_value_slice_free);
+  tp_clear_pointer (&priv->storage_identifier, g_variant_unref);
 
   g_strfreev (priv->uri_schemes);
 
@@ -1970,30 +1970,6 @@ tp_account_class_init (TpAccountClass *klass)
   /**
    * TpAccount:storage-identifier:
    *
-   * The storage identifier for this account.
-   *
-   * A provider-specific variant type used to identify this account with the
-   * provider. This value will be %NULL if #TpAccount:storage-provider is
-   * an empty string.
-   *
-   * This property cannot change once an Account has been created.
-   *
-   * This is not guaranteed to have been retrieved until the
-   * %TP_ACCOUNT_FEATURE_STORAGE feature has been prepared; until then,
-   * the value is %NULL.
-   *
-   * Since: 0.13.2
-   */
-  g_object_class_install_property (object_class, PROP_STORAGE_IDENTIFIER,
-      g_param_spec_boxed ("storage-identifier",
-        "StorageIdentifier",
-        "The storage identifier for this account",
-        G_TYPE_VALUE,
-        G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
-
-  /**
-   * TpAccount:storage-identifier-variant:
-   *
    * Provider-specific information used to identify this
    * account. Use g_variant_get_type() to check that the type
    * is what you expect. For instance, if you use a
@@ -2007,13 +1983,11 @@ tp_account_class_init (TpAccountClass *klass)
    * This is not guaranteed to have been retrieved until the
    * %TP_ACCOUNT_FEATURE_STORAGE feature has been prepared; until then,
    * the value is %NULL.
-   *
-   * Since: 0.13.2
    */
   g_object_class_install_property (object_class,
-      PROP_STORAGE_IDENTIFIER_VARIANT,
-      g_param_spec_variant ("storage-identifier-variant",
-        "StorageIdentifier as variant",
+      PROP_STORAGE_IDENTIFIER,
+      g_param_spec_variant ("storage-identifier",
+        "StorageIdentifier",
         "The storage identifier for this account",
         G_VARIANT_TYPE_ANY,
         NULL,
@@ -3822,18 +3796,16 @@ tp_account_get_storage_provider (TpAccount *self)
   return self->priv->storage_provider;
 }
 
-/* FIXME: in 1.0, remove */
 /**
  * tp_account_get_storage_identifier:
  * @self: a #TpAccount
  *
  * <!-- -->
  *
- * Returns: the same as the #TpAccount:storage-identifier property
- *
- * Since: 0.13.2
+ * Returns: (transfer none): the same as the #TpAccount:storage-identifier
+ * property
  */
-const GValue *
+const GVariant *
 tp_account_get_storage_identifier (TpAccount *self)
 {
   g_return_val_if_fail (TP_IS_ACCOUNT (self), NULL);
@@ -3841,34 +3813,6 @@ tp_account_get_storage_identifier (TpAccount *self)
   return self->priv->storage_identifier;
 }
 
-/* FIXME: in 1.0, rename to tp_account_get_storage_identifier */
-/**
- * tp_account_dup_storage_identifier_variant:
- * @self: a #TpAccount
- *
- * Return provider-specific information used to identify this
- * account. Use g_variant_get_type() to check that the type
- * is what you expect; for instance, if the
- * #TpAccount:storage-provider has string-based user identifiers,
- * this variant should have type %G_VARIANT_TYPE_STRING.
- *
- * Returns: (transfer full): the same as the
- *  #TpAccount:storage-identifier-variant property
- *
- * Since: 0.13.2
- */
-GVariant *
-tp_account_dup_storage_identifier_variant (TpAccount *self)
-{
-  g_return_val_if_fail (TP_IS_ACCOUNT (self), NULL);
-
-  if (self->priv->storage_identifier == NULL)
-    return NULL;
-
-  return g_variant_ref_sink (dbus_g_value_build_g_variant (
-        self->priv->storage_identifier));
-}
-
 /**
  * tp_account_get_storage_restrictions:
  * @self: a #TpAccount
diff --git a/telepathy-glib/account.h b/telepathy-glib/account.h
index 4ec33de..719fc0a 100644
--- a/telepathy-glib/account.h
+++ b/telepathy-glib/account.h
@@ -242,8 +242,7 @@ gboolean tp_account_set_avatar_finish (TpAccount *self,
 gboolean tp_account_get_changing_presence (TpAccount *self);
 
 const gchar *tp_account_get_storage_provider (TpAccount *self);
-const GValue *tp_account_get_storage_identifier (TpAccount *self);
-GVariant *tp_account_dup_storage_identifier_variant (TpAccount *self);
+const GVariant *tp_account_get_storage_identifier (TpAccount *self);
 TpStorageRestrictionFlags tp_account_get_storage_restrictions (TpAccount *self);
 void tp_account_get_storage_specific_information_async (TpAccount *self,
     GAsyncReadyCallback callback, gpointer user_data);
diff --git a/tests/dbus/account.c b/tests/dbus/account.c
index ab835c5..93e1fe3 100644
--- a/tests/dbus/account.c
+++ b/tests/dbus/account.c
@@ -507,7 +507,6 @@ test_storage (Test *test,
     gconstpointer mode)
 {
   GQuark account_features[] = { TP_ACCOUNT_FEATURE_STORAGE, 0 };
-  GValue *gvalue;
   GVariant *gvariant;
   GHashTable *info;
   GError *error = NULL;
@@ -531,9 +530,9 @@ test_storage (Test *test,
       assert_strprop (test->account, "storage-provider", NULL);
       g_assert (tp_account_get_storage_identifier (test->account) == NULL);
       g_object_get (test->account,
-          "storage-identifier", &gvalue,
+          "storage-identifier", &gvariant,
           NULL);
-      g_assert (gvalue == NULL);
+      g_assert (gvariant == NULL);
       g_assert (tp_account_get_storage_identifier (test->account) == NULL);
       g_object_get (test->account,
           "storage-identifier", &gvariant,
@@ -555,23 +554,11 @@ test_storage (Test *test,
       "im.telepathy.v1.glib.test");
 
   g_assert_cmpstr (
-      g_value_get_string (tp_account_get_storage_identifier (test->account)),
-      ==, "unique-identifier");
-  g_object_get (test->account,
-      "storage-identifier", &gvalue,
-      NULL);
-  g_assert_cmpstr (g_value_get_string (gvalue), ==, "unique-identifier");
-  g_boxed_free (G_TYPE_VALUE, gvalue);
-
-  gvariant = tp_account_dup_storage_identifier_variant (test->account);
-  g_assert_cmpstr (g_variant_get_type_string (gvariant), ==, "s");
-  g_assert_cmpstr (g_variant_get_string (gvariant, NULL), ==,
-      "unique-identifier");
-  g_variant_unref (gvariant);
+      g_variant_get_string ((GVariant *) tp_account_get_storage_identifier (
+          test->account), NULL), ==, "unique-identifier");
   g_object_get (test->account,
-      "storage-identifier-variant", &gvariant,
+      "storage-identifier", &gvariant,
       NULL);
-  g_assert_cmpstr (g_variant_get_type_string (gvariant), ==, "s");
   g_assert_cmpstr (g_variant_get_string (gvariant, NULL), ==,
       "unique-identifier");
   g_variant_unref (gvariant);



More information about the telepathy-commits mailing list