diff options
author | Simon McVittie <simon.mcvittie@collabora.co.uk> | 2013-09-26 14:28:40 +0100 |
---|---|---|
committer | Simon McVittie <simon.mcvittie@collabora.co.uk> | 2013-09-26 16:30:46 +0100 |
commit | aa407653e274480ae63b21017869e07de3a1aa4e (patch) | |
tree | 457aa101d5ddb7e5d50bcee1b805478067460967 /examples | |
parent | e6ac4848a0e613087b024af9f4c21fec3ee509ef (diff) | |
download | telepathy-glib-aa407653e274480ae63b21017869e07de3a1aa4e.tar.gz |
Make more use of tp_value_array_unpack, tp_value_array_build
As well as being less code, they're not flagged as deprecated.
This requires a bit of extra copying, because there's no
tp_value_array_unpack_dup() or tp_value_array_build_take(), but
it seems worth it.
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=69849
Reviewed-by: Xavier Claessens <xavier.claessens@collabora.co.uk>
Diffstat (limited to 'examples')
-rw-r--r-- | examples/client/extended-client.c | 13 | ||||
-rw-r--r-- | examples/cm/contactlist/conn.c | 12 | ||||
-rw-r--r-- | examples/cm/extended/conn.c | 42 |
3 files changed, 27 insertions, 40 deletions
diff --git a/examples/client/extended-client.c b/examples/client/extended-client.c index 55e3086e2..117223179 100644 --- a/examples/client/extended-client.c +++ b/examples/client/extended-client.c @@ -71,14 +71,15 @@ got_hats_cb (TpConnection *conn, for (i = 0; i < hats->len; i++) { GValueArray *vals = g_ptr_array_index (hats, i); + guint handle; + const gchar *color; + guint style; + GHashTable *details; + tp_value_array_unpack (vals, 4, + &handle, &color, &style, &details); g_message ("Contact #%u has hat style %u, color \"%s\", with %u " - "properties", - g_value_get_uint (g_value_array_get_nth (vals, 0)), - g_value_get_uint (g_value_array_get_nth (vals, 2)), - g_value_get_string (g_value_array_get_nth (vals, 1)), - g_hash_table_size (g_value_get_boxed (g_value_array_get_nth (vals, - 3)))); + "properties", handle, style, color, g_hash_table_size (details)); } tp_cli_connection_call_disconnect (conn, -1, disconnect_cb, diff --git a/examples/cm/contactlist/conn.c b/examples/cm/contactlist/conn.c index a28ae8547..bc7876ce4 100644 --- a/examples/cm/contactlist/conn.c +++ b/examples/cm/contactlist/conn.c @@ -163,14 +163,10 @@ alias_updated_cb (ExampleContactList *contact_list, GPtrArray *aliases; GValueArray *pair; - pair = g_value_array_new (2); - g_value_array_append (pair, NULL); - g_value_array_append (pair, NULL); - g_value_init (pair->values + 0, G_TYPE_UINT); - g_value_init (pair->values + 1, G_TYPE_STRING); - g_value_set_uint (pair->values + 0, contact); - g_value_set_string (pair->values + 1, - example_contact_list_get_alias (contact_list, contact)); + pair = tp_value_array_build (2, + G_TYPE_UINT, contact, + G_TYPE_STRING, example_contact_list_get_alias (contact_list, contact), + G_TYPE_INVALID); aliases = g_ptr_array_sized_new (1); g_ptr_array_add (aliases, pair); diff --git a/examples/cm/extended/conn.c b/examples/cm/extended/conn.c index 873fcf2b0..c92076f4e 100644 --- a/examples/cm/extended/conn.c +++ b/examples/cm/extended/conn.c @@ -274,40 +274,30 @@ my_get_hats (ExampleSvcConnectionInterfaceHats *iface, for (i = 0; i < contacts->len; i++) { TpHandle handle = g_array_index (contacts, guint, i); - GValueArray *vals = g_value_array_new (4); - - g_value_array_append (vals, NULL); - g_value_init (g_value_array_get_nth (vals, 0), G_TYPE_UINT); - g_value_set_uint (g_value_array_get_nth (vals, 0), handle); - - g_value_array_append (vals, NULL); - g_value_init (g_value_array_get_nth (vals, 1), G_TYPE_STRING); - - g_value_array_append (vals, NULL); - g_value_init (g_value_array_get_nth (vals, 2), G_TYPE_UINT); - - g_value_array_append (vals, NULL); - g_value_init (g_value_array_get_nth (vals, 3), - TP_HASH_TYPE_STRING_VARIANT_MAP); + GValueArray *vals; /* for the sake of a simple example, let's assume nobody except me * has any hats */ if (handle == tp_base_connection_get_self_handle (base)) { - g_value_set_string (g_value_array_get_nth (vals, 1), - self->priv->hat_color); - g_value_set_uint (g_value_array_get_nth (vals, 2), - self->priv->hat_style); - g_value_set_boxed (g_value_array_get_nth (vals, 3), - self->priv->hat_properties); + vals = tp_value_array_build (4, + G_TYPE_UINT, handle, + G_TYPE_STRING, self->priv->hat_color, + G_TYPE_UINT, self->priv->hat_style, + TP_HASH_TYPE_STRING_VARIANT_MAP, self->priv->hat_properties, + G_TYPE_INVALID); } else { - g_value_set_static_string (g_value_array_get_nth (vals, 1), ""); - g_value_set_uint (g_value_array_get_nth (vals, 2), - EXAMPLE_HAT_STYLE_NONE); - g_value_take_boxed (g_value_array_get_nth (vals, 3), - g_hash_table_new (NULL, NULL)); + GHashTable *empty = g_hash_table_new (g_str_hash, g_str_equal); + + vals = tp_value_array_build (4, + G_TYPE_UINT, handle, + G_TYPE_STRING, "", + G_TYPE_UINT, EXAMPLE_HAT_STYLE_NONE, + TP_HASH_TYPE_STRING_VARIANT_MAP, empty, + G_TYPE_INVALID); + g_hash_table_unref (empty); } g_ptr_array_add (ret, vals); |