1// $OpenLDAP$ 2/* 3 * Copyright 2000-2011 The OpenLDAP Foundation, All Rights Reserved. 4 * COPYING RESTRICTIONS APPLY, see COPYRIGHT file 5 */ 6 7#ifndef LDAP_URL_LIST_H 8#define LDAP_URL_LIST_H 9 10#include <list> 11#include <LDAPUrl.h> 12 13/** 14 * This container class is used to store multiple LDAPUrl-objects. 15 */ 16class LDAPUrlList{ 17 typedef std::list<LDAPUrl> ListType; 18 19 public: 20 typedef ListType::const_iterator const_iterator; 21 22 /** 23 * Constructs an empty list. 24 */ 25 LDAPUrlList(); 26 27 /** 28 * Copy-constructor 29 */ 30 LDAPUrlList(const LDAPUrlList& urls); 31 32 /** 33 * For internal use only 34 * 35 * This constructor is used by the library internally to create a 36 * std::list of URLs from a array of C-strings that was return by 37 * the C-API 38 */ 39 LDAPUrlList(char** urls); 40 41 /** 42 * Destructor 43 */ 44 ~LDAPUrlList(); 45 46 /** 47 * @return The number of LDAPUrl-objects that are currently 48 * stored in this list. 49 */ 50 size_t size() const; 51 52 /** 53 * @return true if there are zero LDAPUrl-objects currently 54 * stored in this list. 55 */ 56 bool empty() const; 57 58 /** 59 * @return A iterator that points to the first element of the list. 60 */ 61 const_iterator begin() const; 62 63 /** 64 * @return A iterator that points to the element after the last 65 * element of the list. 66 */ 67 const_iterator end() const; 68 69 /** 70 * Adds one element to the end of the list. 71 * @param attr The attribute to add to the list. 72 */ 73 void add(const LDAPUrl& url); 74 75 private : 76 ListType m_urls; 77}; 78#endif //LDAP_URL_LIST_H 79