1d11b170bStron // $OpenLDAP$
22de962bdSlukem /*
3*e670fd5cSchristos * Copyright 2000-2021 The OpenLDAP Foundation, All Rights Reserved.
42de962bdSlukem * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
52de962bdSlukem */
62de962bdSlukem
72de962bdSlukem #include "debug.h"
82de962bdSlukem #include "LDAPControlSet.h"
92de962bdSlukem
102de962bdSlukem using namespace std;
112de962bdSlukem
LDAPControlSet()122de962bdSlukem LDAPControlSet::LDAPControlSet(){
132de962bdSlukem }
142de962bdSlukem
LDAPControlSet(const LDAPControlSet & cs)152de962bdSlukem LDAPControlSet::LDAPControlSet(const LDAPControlSet& cs){
162de962bdSlukem DEBUG(LDAP_DEBUG_CONSTRUCT,"LDAPControlSet::LDAPControlSet(&)" << endl);
172de962bdSlukem data=cs.data;
182de962bdSlukem }
192de962bdSlukem
LDAPControlSet(LDAPControl ** controls)202de962bdSlukem LDAPControlSet::LDAPControlSet(LDAPControl** controls){
212de962bdSlukem DEBUG(LDAP_DEBUG_CONSTRUCT,"LDAPControlSet::LDAPControlSet()" << endl);
222de962bdSlukem if(controls != 0){
232de962bdSlukem LDAPControl** i;
242de962bdSlukem for( i=controls; *i!=0;i++) {
252de962bdSlukem add(LDAPCtrl(*i));
262de962bdSlukem }
272de962bdSlukem }
282de962bdSlukem }
292de962bdSlukem
~LDAPControlSet()302de962bdSlukem LDAPControlSet::~LDAPControlSet(){
312de962bdSlukem DEBUG(LDAP_DEBUG_DESTROY,"LDAPControlSet::~LDAPControlSet()" << endl);
322de962bdSlukem }
332de962bdSlukem
size() const342de962bdSlukem size_t LDAPControlSet::size() const {
352de962bdSlukem DEBUG(LDAP_DEBUG_TRACE,"LDAPControlSet::size()" << endl);
362de962bdSlukem return data.size();
372de962bdSlukem }
382de962bdSlukem
empty() const392de962bdSlukem bool LDAPControlSet::empty() const {
402de962bdSlukem DEBUG(LDAP_DEBUG_TRACE,"LDAPControlSet::empty()" << endl);
412de962bdSlukem return data.empty();
422de962bdSlukem }
432de962bdSlukem
begin() const442de962bdSlukem LDAPControlSet::const_iterator LDAPControlSet::begin() const{
452de962bdSlukem DEBUG(LDAP_DEBUG_TRACE,"LDAPControlSet::begin()" << endl);
462de962bdSlukem return data.begin();
472de962bdSlukem }
482de962bdSlukem
492de962bdSlukem
end() const502de962bdSlukem LDAPControlSet::const_iterator LDAPControlSet::end() const{
512de962bdSlukem DEBUG(LDAP_DEBUG_TRACE,"LDAPControlSet::end()" << endl);
522de962bdSlukem return data.end ();
532de962bdSlukem }
542de962bdSlukem
add(const LDAPCtrl & ctrl)552de962bdSlukem void LDAPControlSet::add(const LDAPCtrl& ctrl){
562de962bdSlukem DEBUG(LDAP_DEBUG_TRACE,"LDAPControlSet::add()" << endl);
572de962bdSlukem data.push_back(ctrl);
582de962bdSlukem }
592de962bdSlukem
toLDAPControlArray() const602de962bdSlukem LDAPControl** LDAPControlSet::toLDAPControlArray() const{
612de962bdSlukem DEBUG(LDAP_DEBUG_TRACE, "LDAPControlSet::toLDAPControlArray()" << endl);
622de962bdSlukem if(data.empty()){
632de962bdSlukem return 0;
642de962bdSlukem }else{
652de962bdSlukem LDAPControl** ret= new LDAPControl*[data.size()+1];
662de962bdSlukem CtrlList::const_iterator i;
672de962bdSlukem int j=0;
682de962bdSlukem for(i=data.begin(); i!=data.end(); i++,j++){
692de962bdSlukem ret[j] = i->getControlStruct();
702de962bdSlukem }
712de962bdSlukem ret[data.size()]=0;
722de962bdSlukem return ret;
732de962bdSlukem }
742de962bdSlukem }
752de962bdSlukem
freeLDAPControlArray(LDAPControl ** ctrl)762de962bdSlukem void LDAPControlSet::freeLDAPControlArray(LDAPControl **ctrl){
772de962bdSlukem DEBUG(LDAP_DEBUG_TRACE, "LDAPControlSet::freeLDAPControlArray()" << endl);
782de962bdSlukem if( ctrl ){
792de962bdSlukem for( LDAPControl **i = ctrl; *i != 0; ++i ){
802de962bdSlukem LDAPCtrl::freeLDAPControlStruct(*i);
812de962bdSlukem }
822de962bdSlukem }
832de962bdSlukem delete[] ctrl;
842de962bdSlukem }
85