]> git.sur5r.net Git - openldap/blob - contrib/ldapc++/src/StringList.h
Happy New Year
[openldap] / contrib / ldapc++ / src / StringList.h
1 // $OpenLDAP$
2 /*
3  * Copyright 2000-2018 The OpenLDAP Foundation, All Rights Reserved.
4  * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
5  */
6
7 #ifndef STRING_LIST_H
8 #define STRING_LIST_H
9
10 #include <string>
11 #include <list>
12 /**
13  * Container class to store multiple string-objects
14  */
15 class StringList{
16     typedef std::list<std::string> ListType;
17
18     private:
19         ListType m_data;
20
21     public:
22         typedef ListType::const_iterator const_iterator;
23    
24         /**
25          * Constructs an empty list.
26          */   
27         StringList();
28
29         /**
30          * Copy-constructor
31          */
32         StringList(const StringList& sl);
33
34         /**
35          * For internal use only
36          *
37          * This constructor is used by the library internally to create a
38          * list of string from a array for c-Strings (char*)thar was
39          * returned by the C-API
40          */
41         StringList(char** values);
42
43         /**
44          * Destructor
45          */
46         ~StringList();
47     
48         /**
49          * The methods converts the list to a 0-terminated array of
50          * c-Strings.
51          */
52         char** toCharArray() const;
53   
54         /**
55          * Adds one element to the end of the list.
56          * @param attr The attribute to add to the list.
57          */
58         void add(const std::string& value);
59
60         /**
61          * @return The number of strings that are currently
62          * stored in this list.
63          */
64         size_t size() const;
65
66         /**
67          * @return true if there are zero strings currently
68          * stored in this list.
69          */
70         bool empty() const;
71
72         /**
73          * @return A iterator that points to the first element of the list.
74          */
75         const_iterator begin() const;
76
77         /**
78          * @return A iterator that points to the element after the last
79          * element of the list.
80          */
81         const_iterator end() const;
82
83         /**
84          * removes all elements from the list
85          */
86         void clear(); 
87 };
88 #endif //STRING_LIST_H