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