---
lib/sset.c | 20 ++++++++++++++++++++
lib/sset.h | 1 +
2 files changed, 21 insertions(+), 0 deletions(-)
diff --git a/lib/sset.c b/lib/sset.c
index 9a0936b..7a8f5b6 100644
--- a/lib/sset.c
+++ b/lib/sset.c
@@ -161,6 +161,26 @@ sset_add_array(struct sset *set, char **names, size_t n)
}
}
+/* Populates 'names' with at most 'n' strings in 'set'. 'set' retains
+ * ownership of the populated strings. Returns the number of strings written
+ * to 'names. */
+size_t
+sset_to_array(struct sset *set, char **names, size_t n)
+{
+ const char *name;
+ size_t i = 0;
+
+ SSET_FOR_EACH (name, set) {
+ if (i >= n) {
+ break;
+ }
+
+ names[i++] = (char *) name;
+ }
+
+ return i;
+}
+
/* Removes all of the strings from 'set'. */
void
sset_clear(struct sset *set)
diff --git a/lib/sset.h b/lib/sset.h
index a739fce..987b394 100644
--- a/lib/sset.h
+++ b/lib/sset.h
@@ -51,6 +51,7 @@ struct sset_node *sset_add(struct sset *, const char *);
struct sset_node *sset_add_and_free(struct sset *, char *);
void sset_add_assert(struct sset *, const char *);
void sset_add_array(struct sset *, char **, size_t n);
+size_t sset_to_array(struct sset *, char **, size_t n);
/* Deletion. */
void sset_clear(struct sset *);
--
1.7.6.1
_______________________________________________
dev mailing list
[email protected]
http://openvswitch.org/mailman/listinfo/dev