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