diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-27 11:11:40 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-27 11:11:40 +0000 |
commit | 7731832751ab9f3c6ddeb66f186d3d7fa1934a6d (patch) | |
tree | e91015872543a59be2aad26c2fea02e41b57005d /contrib/ldapc++/src/StringList.h | |
parent | Initial commit. (diff) | |
download | openldap-upstream/2.4.57+dfsg.tar.xz openldap-upstream/2.4.57+dfsg.zip |
Adding upstream version 2.4.57+dfsg.upstream/2.4.57+dfsgupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r-- | contrib/ldapc++/src/StringList.h | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/contrib/ldapc++/src/StringList.h b/contrib/ldapc++/src/StringList.h new file mode 100644 index 0000000..23d056b --- /dev/null +++ b/contrib/ldapc++/src/StringList.h @@ -0,0 +1,88 @@ +// $OpenLDAP$ +/* + * Copyright 2000-2021 The OpenLDAP Foundation, All Rights Reserved. + * COPYING RESTRICTIONS APPLY, see COPYRIGHT file + */ + +#ifndef STRING_LIST_H +#define STRING_LIST_H + +#include <string> +#include <list> +/** + * Container class to store multiple string-objects + */ +class StringList{ + typedef std::list<std::string> ListType; + + private: + ListType m_data; + + public: + typedef ListType::const_iterator const_iterator; + + /** + * Constructs an empty list. + */ + StringList(); + + /** + * Copy-constructor + */ + StringList(const StringList& sl); + + /** + * For internal use only + * + * This constructor is used by the library internally to create a + * list of string from a array for c-Strings (char*)thar was + * returned by the C-API + */ + StringList(char** values); + + /** + * Destructor + */ + ~StringList(); + + /** + * The methods converts the list to a 0-terminated array of + * c-Strings. + */ + char** toCharArray() const; + + /** + * Adds one element to the end of the list. + * @param attr The attribute to add to the list. + */ + void add(const std::string& value); + + /** + * @return The number of strings that are currently + * stored in this list. + */ + size_t size() const; + + /** + * @return true if there are zero strings currently + * stored in this list. + */ + bool empty() const; + + /** + * @return A iterator that points to the first element of the list. + */ + const_iterator begin() const; + + /** + * @return A iterator that points to the element after the last + * element of the list. + */ + const_iterator end() const; + + /** + * removes all elements from the list + */ + void clear(); +}; +#endif //STRING_LIST_H |