From 5ea77a75dd2d2158401331879f3c8f47940a732c Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 18:35:32 +0200 Subject: Adding upstream version 2.5.13+dfsg. Signed-off-by: Daniel Baumann --- contrib/ldapc++/src/LDAPControlSet.h | 89 ++++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 contrib/ldapc++/src/LDAPControlSet.h (limited to 'contrib/ldapc++/src/LDAPControlSet.h') diff --git a/contrib/ldapc++/src/LDAPControlSet.h b/contrib/ldapc++/src/LDAPControlSet.h new file mode 100644 index 0000000..4c033be --- /dev/null +++ b/contrib/ldapc++/src/LDAPControlSet.h @@ -0,0 +1,89 @@ +// $OpenLDAP$ +/* + * Copyright 2000-2022 The OpenLDAP Foundation, All Rights Reserved. + * COPYING RESTRICTIONS APPLY, see COPYRIGHT file + */ + +#ifndef LDAP_CONTROL_SET_H +#define LDAP_CONTROL_SET_H + +#include +#include +#include + +typedef std::list CtrlList; + +/** + * This container class is used to store multiple LDAPCtrl-objects. + */ +class LDAPControlSet { + typedef CtrlList::const_iterator const_iterator; + public : + /** + * Constructs an empty std::list + */ + LDAPControlSet(); + + + /** + * Copy-constructor + */ + LDAPControlSet(const LDAPControlSet& cs); + + /** + * For internal use only + * + * This constructor creates a new LDAPControlSet for a + * 0-terminated array of LDAPControl-structures as used by the + * C-API + * @param controls: pointer to a 0-terminated array of pointers to + * LDAPControl-structures + * @note: untested til now. Due to lack of server that return + * Controls + */ + LDAPControlSet(LDAPControl** controls); + + /** + * Destructor + */ + ~LDAPControlSet(); + + /** + * @return The number of LDAPCtrl-objects that are currently + * stored in this list. + */ + size_t size() const ; + + /** + * @return true if there are zero LDAPCtrl-objects currently + * stored in this list. + */ + bool empty() const; + + /** + * @return A iterator that points to the first element of the list. + */ + const_iterator begin() const; + + /** + * @return A iterator that points to the element after the last + * element of the list. + */ + const_iterator end() const; + + /** + * Adds one element to the end of the list. + * @param ctrl The Control to add to the list. + */ + void add(const LDAPCtrl& ctrl); + + /** + * Translates the list to a 0-terminated array of pointers to + * LDAPControl-structures as needed by the C-API + */ + LDAPControl** toLDAPControlArray()const ; + static void freeLDAPControlArray(LDAPControl **ctrl); + private : + CtrlList data; +} ; +#endif //LDAP_CONTROL_SET_H -- cgit v1.2.3