Back to index

openldap  2.4.31
StringList.cpp
Go to the documentation of this file.
00001 // $OpenLDAP$
00002 /*
00003  * Copyright 2000-2012 The OpenLDAP Foundation, All Rights Reserved.
00004  * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
00005  */
00006 
00007 #include "StringList.h"
00008 #include "debug.h"
00009 
00010 #include <cstdlib>
00011 
00012 using namespace std;
00013 
00014 StringList::StringList(){
00015 }
00016 
00017 StringList::StringList(const StringList& sl){
00018     m_data= StringList::ListType(sl.m_data);
00019 }
00020 
00021 StringList::StringList(char** values){
00022     if(values == 0){
00023         m_data=StringList::ListType();
00024     }else{
00025         char** i;
00026         for(i=values; *i != 0; i++){
00027             m_data.push_back(string(*i));
00028         }
00029     }
00030 }
00031 
00032 StringList::~StringList(){
00033     DEBUG(LDAP_DEBUG_TRACE,"StringList::~StringList()" << endl);
00034 }
00035 
00036 char** StringList::toCharArray() const{
00037     if(!empty()){
00038         char** ret = (char**) malloc(sizeof(char*) * (size()+1));
00039         StringList::const_iterator i;
00040         int j=0;
00041         for(i=begin(); i != end(); i++,j++){
00042             ret[j]=(char*) malloc(sizeof(char) * (i->size()+1));
00043             i->copy(ret[j],string::npos);
00044             ret[j][i->size()]=0;
00045         }
00046         ret[size()]=0;
00047         return ret;
00048     }else{
00049         return 0;
00050     }
00051 }
00052 
00053 void StringList::add(const string& value){
00054     m_data.push_back(value);
00055 }
00056 
00057 size_t StringList::size() const{
00058     return m_data.size();
00059 }
00060 
00061 bool StringList::empty() const{
00062     return m_data.empty();
00063 }
00064 
00065 StringList::const_iterator StringList::begin() const{
00066     return m_data.begin();
00067 }
00068 
00069 StringList::const_iterator StringList::end() const{
00070     return m_data.end();
00071 }
00072 
00073     
00074 void StringList::clear(){
00075     m_data.clear();
00076 }
00077