00001 /* 00002 * Copyright 2000, OpenLDAP Foundation, All Rights Reserved. 00003 * COPYING RESTRICTIONS APPLY, see COPYRIGHT file 00004 */ 00005 00006 #ifndef LDAP_CONTROL_SET_H 00007 #define LDAP_CONTROL_SET_H 00008 00009 #include <list> 00010 #include <ldap.h> 00011 #include <LDAPControl.h> 00012 00013 typedef std::list<LDAPCtrl> CtrlList; 00014 00018 class LDAPControlSet { 00019 typedef CtrlList::const_iterator const_iterator; 00020 public : 00024 LDAPControlSet(); 00025 00026 00030 LDAPControlSet(const LDAPControlSet& cs); 00031 00043 LDAPControlSet(LDAPControl** controls); 00044 00048 ~LDAPControlSet(); 00049 00054 size_t size() const ; 00055 00060 bool empty() const; 00061 00065 const_iterator begin() const; 00066 00071 const_iterator end() const; 00072 00077 void add(const LDAPCtrl& ctrl); 00078 00083 LDAPControl** toLDAPControlArray()const ; 00084 static void freeLDAPControlArray(LDAPControl **ctrl); 00085 private : 00086 CtrlList data; 00087 } ; 00088 #endif //LDAP_CONTROL_SET_H