diff options
author | Ben Pfaff <blp@nicira.com> | 2015-07-18 16:59:08 -0700 |
---|---|---|
committer | Ben Pfaff <blp@nicira.com> | 2015-08-03 10:16:44 -0700 |
commit | d65467f16aa59db501adfc79f909fbe8e65ebeec (patch) | |
tree | 425d90363d1c04052284d8be7a7811dd00d37bd5 /lib | |
parent | 710164bc2e30af13a6299e3b8f3981d9289055ba (diff) | |
download | openvswitch-d65467f16aa59db501adfc79f909fbe8e65ebeec.tar.gz |
smap: New function smap_get_uuid().
To be used in an upcoming commit.
Signed-off-by: Ben Pfaff <blp@nicira.com>
Acked-by: Russell Bryant <rbryant@redhat.com>
Acked-by: Justin Pettit <jpettit@nicira.com>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/smap.c | 13 | ||||
-rw-r--r-- | lib/smap.h | 4 |
2 files changed, 15 insertions, 2 deletions
diff --git a/lib/smap.c b/lib/smap.c index 8865a8898..1d59f568f 100644 --- a/lib/smap.c +++ b/lib/smap.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2012, 2014 Nicira, Inc. +/* Copyright (c) 2012, 2014, 2015 Nicira, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -19,6 +19,7 @@ #include "hash.h" #include "json.h" +#include "uuid.h" static struct smap_node *smap_add__(struct smap *, char *, void *, size_t hash); @@ -215,6 +216,16 @@ smap_get_int(const struct smap *smap, const char *key, int def) return value ? atoi(value) : def; } +/* Gets the value associated with 'key' in 'smap' and converts it to a UUID + * using uuid_from_string(). Returns true if successful, false if 'key' is not + * in 'smap' or if 'key' does not have the correct syntax for a UUID. */ +bool +smap_get_uuid(const struct smap *smap, const char *key, struct uuid *uuid) +{ + const char *value = smap_get(smap, key); + return value && uuid_from_string(uuid, value); +} + /* Returns true of there are no elements in 'smap'. */ bool smap_is_empty(const struct smap *smap) diff --git a/lib/smap.h b/lib/smap.h index cac387899..846e38407 100644 --- a/lib/smap.h +++ b/lib/smap.h @@ -1,4 +1,4 @@ -/* Copyright (c) 2012, 2014 Nicira, Inc. +/* Copyright (c) 2012, 2014, 2015 Nicira, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,6 +18,7 @@ #include "hmap.h" struct json; +struct uuid; /* A map from string to string. */ struct smap { @@ -57,6 +58,7 @@ const char *smap_get(const struct smap *, const char *); struct smap_node *smap_get_node(const struct smap *, const char *); bool smap_get_bool(const struct smap *smap, const char *key, bool def); int smap_get_int(const struct smap *smap, const char *key, int def); +bool smap_get_uuid(const struct smap *, const char *key, struct uuid *); bool smap_is_empty(const struct smap *); size_t smap_count(const struct smap *); |