]> git.sur5r.net Git - openldap/blob - contrib/ldapc++/src/StringList.cpp
a1717ffc1a3845127af21efe4cd32c5d103cd100
[openldap] / contrib / ldapc++ / src / StringList.cpp
1 // $OpenLDAP$
2 /*
3  * Copyright 2000-2016 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
14 StringList::StringList(){
15 }
16
17 StringList::StringList(const StringList& sl){
18     m_data= StringList::ListType(sl.m_data);
19 }
20
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
32 StringList::~StringList(){
33     DEBUG(LDAP_DEBUG_TRACE,"StringList::~StringList()" << endl);
34 }
35
36 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
53 void StringList::add(const string& value){
54     m_data.push_back(value);
55 }
56
57 size_t StringList::size() const{
58     return m_data.size();
59 }
60
61 bool StringList::empty() const{
62     return m_data.empty();
63 }
64
65 StringList::const_iterator StringList::begin() const{
66     return m_data.begin();
67 }
68
69 StringList::const_iterator StringList::end() const{
70     return m_data.end();
71 }
72
73     
74 void StringList::clear(){
75     m_data.clear();
76 }
77