xref: /netbsd-src/external/bsd/openldap/dist/contrib/ldapc++/src/StringList.cpp (revision e670fd5c413e99c2f6a37901bb21c537fcd322d2)
1 // $OpenLDAP$
2 /*
3  * Copyright 2000-2021 The OpenLDAP Foundation, All Rights Reserved.
4  * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
5  */
6 
7 #include "StringList.h"
8 #include "debug.h"
9 
10 #include <cstdlib>
11 
12 using namespace std;
13 
StringList()14 StringList::StringList(){
15 }
16 
StringList(const StringList & sl)17 StringList::StringList(const StringList& sl){
18     m_data= StringList::ListType(sl.m_data);
19 }
20 
StringList(char ** values)21 StringList::StringList(char** values){
22     if(values == 0){
23         m_data=StringList::ListType();
24     }else{
25         char** i;
26         for(i=values; *i != 0; i++){
27             m_data.push_back(string(*i));
28         }
29     }
30 }
31 
~StringList()32 StringList::~StringList(){
33     DEBUG(LDAP_DEBUG_TRACE,"StringList::~StringList()" << endl);
34 }
35 
toCharArray() const36 char** StringList::toCharArray() const{
37     if(!empty()){
38         char** ret = (char**) malloc(sizeof(char*) * (size()+1));
39         StringList::const_iterator i;
40         int j=0;
41         for(i=begin(); i != end(); i++,j++){
42             ret[j]=(char*) malloc(sizeof(char) * (i->size()+1));
43             i->copy(ret[j],string::npos);
44             ret[j][i->size()]=0;
45         }
46         ret[size()]=0;
47         return ret;
48     }else{
49         return 0;
50     }
51 }
52 
add(const string & value)53 void StringList::add(const string& value){
54     m_data.push_back(value);
55 }
56 
size() const57 size_t StringList::size() const{
58     return m_data.size();
59 }
60 
empty() const61 bool StringList::empty() const{
62     return m_data.empty();
63 }
64 
begin() const65 StringList::const_iterator StringList::begin() const{
66     return m_data.begin();
67 }
68 
end() const69 StringList::const_iterator StringList::end() const{
70     return m_data.end();
71 }
72 
73 
clear()74 void StringList::clear(){
75     m_data.clear();
76 }
77 
78