]> git.sur5r.net Git - openldap/blob - contrib/ldapc++/src/StringList.cpp
287547218ff25f13e1ec5029eaf0de1cbb3be1bd
[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 StringList::StringList(){
10 }
11
12 StringList::StringList(const StringList& sl){
13     m_data= ListType(sl.m_data);
14 }
15
16 StringList::StringList(char** values){
17     if(values == 0){
18         m_data=ListType();
19     }else{
20         char** i;
21         for(i=values; *i != 0; i++){
22             m_data.push_back(string(*i));
23         }
24     }
25 }
26
27 StringList::~StringList(){
28     DEBUG(LDAP_DEBUG_TRACE,"StringList::~StringList()" << endl);
29 }
30
31 char** StringList::toCharArray() const{
32     if(!empty()){
33         char** ret = new char*[size()+1];
34         StringList::const_iterator i;
35         int j=0;
36         for(i=begin(); i != end(); i++,j++){
37             ret[j]=new char[i->size()+1];
38             i->copy(ret[j],string::npos);
39             ret[j][i->size()]=0;
40         }
41         ret[size()]=0;
42         return ret;
43     }else{
44         return 0;
45     }
46 }
47
48 void StringList::add(const string& value){
49     m_data.push_back(value);
50 }
51
52 size_t StringList::size() const{
53     return m_data.size();
54 }
55
56 bool StringList::empty() const{
57     return m_data.empty();
58 }
59
60 StringList::const_iterator StringList::begin() const{
61     return m_data.begin();
62 }
63
64 StringList::const_iterator StringList::end() const{
65     return m_data.end();
66 }
67
68     
69 void StringList::clear(){
70     m_data.clear();
71 }
72