diff options
| author | Guillaume Desmottes <guillaume.desmottes@collabora.co.uk> | 2014-03-18 14:39:42 +0100 |
|---|---|---|
| committer | Guillaume Desmottes <guillaume.desmottes@collabora.co.uk> | 2014-03-18 14:39:42 +0100 |
| commit | a492bd4d4a2af70ed620520c1a9196c8e5dd0917 (patch) | |
| tree | 094c26c80ed71a14e271d4d714f811d92696a2d0 | |
| parent | 24ca19d9d0ca4ca8c163e77295ec7b4a4d7cab8c (diff) | |
add tp_vardict_has_key()
| -rw-r--r-- | docs/reference/telepathy-glib/telepathy-glib-sections.txt | 1 | ||||
| -rw-r--r-- | telepathy-glib/variant-util.c | 24 | ||||
| -rw-r--r-- | telepathy-glib/variant-util.h | 3 | ||||
| -rw-r--r-- | tests/asv.c | 4 |
4 files changed, 32 insertions, 0 deletions
diff --git a/docs/reference/telepathy-glib/telepathy-glib-sections.txt b/docs/reference/telepathy-glib/telepathy-glib-sections.txt index 68a9d1106..252235768 100644 --- a/docs/reference/telepathy-glib/telepathy-glib-sections.txt +++ b/docs/reference/telepathy-glib/telepathy-glib-sections.txt @@ -1896,6 +1896,7 @@ tp_variant_convert <INCLUDE>telepathy-glib/telepathy-glib.h</INCLUDE> tp_asv_from_vardict tp_asv_to_vardict +tp_vardict_has_key tp_vardict_get_boolean tp_vardict_get_double tp_vardict_get_int32 diff --git a/telepathy-glib/variant-util.c b/telepathy-glib/variant-util.c index 0541fbea5..09756c014 100644 --- a/telepathy-glib/variant-util.c +++ b/telepathy-glib/variant-util.c @@ -617,3 +617,27 @@ IMPLEMENT (uint32) IMPLEMENT (uint64) #undef IMPLEMENT + +/** + * tp_vardict_has_key: + * @variant: a #GVariant of type %G_VARIANT_TYPE_VARDICT + * @key: The key to look up + * + * Check if @variant contains @key. + * + * Returns: %TRUE, if @variant contains @key, %FALSE otherwise + * Since: UNRELEASED + */ +gboolean +tp_vardict_has_key (GVariant *variant, + const gchar *key) +{ + GVariant *v; + + v = g_variant_lookup_value (variant, key, NULL); + if (v == NULL) + return FALSE; + + g_variant_unref (v); + return TRUE; +} diff --git a/telepathy-glib/variant-util.h b/telepathy-glib/variant-util.h index 2a9b517c7..e3181d47c 100644 --- a/telepathy-glib/variant-util.h +++ b/telepathy-glib/variant-util.h @@ -39,6 +39,9 @@ GVariant * tp_asv_to_vardict (const GHashTable *asv); GHashTable * tp_asv_from_vardict (GVariant *variant); +gboolean tp_vardict_has_key (GVariant *variant, + const gchar *key); + const gchar *tp_vardict_get_string (GVariant *variant, const gchar *key); const gchar *tp_vardict_get_object_path (GVariant *variant, diff --git a/tests/asv.c b/tests/asv.c index 0275a2132..4e90bd055 100644 --- a/tests/asv.c +++ b/tests/asv.c @@ -114,6 +114,10 @@ int main (int argc, char **argv) tp_asv_dump (hash); vardict = tp_asv_to_vardict (hash); + + g_assert (tp_vardict_has_key (vardict, "s")); + g_assert (!tp_vardict_has_key (vardict, "badger")); + g_variant_ref_sink (vardict); /* Tests: tp_asv_get_boolean */ |
