Skip to content

Commit

Permalink
smap: New function smap_get_uuid().
Browse files Browse the repository at this point in the history
To be used in an upcoming commit.

Signed-off-by: Ben Pfaff <[email protected]>
Acked-by: Russell Bryant <[email protected]>
Acked-by: Justin Pettit <[email protected]>
  • Loading branch information
blp committed Aug 3, 2015
1 parent 710164b commit d65467f
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 2 deletions.
13 changes: 12 additions & 1 deletion lib/smap.c
Original file line number Diff line number Diff line change
@@ -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.
Expand All @@ -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);
Expand Down Expand Up @@ -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)
Expand Down
4 changes: 3 additions & 1 deletion lib/smap.h
Original file line number Diff line number Diff line change
@@ -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.
Expand All @@ -18,6 +18,7 @@
#include "hmap.h"

struct json;
struct uuid;

/* A map from string to string. */
struct smap {
Expand Down Expand Up @@ -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 *);
Expand Down

0 comments on commit d65467f

Please sign in to comment.