summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorBen Pfaff <blp@nicira.com>2015-07-18 16:59:08 -0700
committerBen Pfaff <blp@nicira.com>2015-08-03 10:16:44 -0700
commitd65467f16aa59db501adfc79f909fbe8e65ebeec (patch)
tree425d90363d1c04052284d8be7a7811dd00d37bd5 /lib
parent710164bc2e30af13a6299e3b8f3981d9289055ba (diff)
downloadopenvswitch-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.c13
-rw-r--r--lib/smap.h4
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 *);