xref: /netbsd-src/external/bsd/openldap/dist/contrib/ldapc++/src/LDAPControlSet.cpp (revision e670fd5c413e99c2f6a37901bb21c537fcd322d2)
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