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/LDAPAttributeList.h | 121 ++++++++++++++++++++++++++++++++ 1 file changed, 121 insertions(+) create mode 100644 contrib/ldapc++/src/LDAPAttributeList.h (limited to 'contrib/ldapc++/src/LDAPAttributeList.h') diff --git a/contrib/ldapc++/src/LDAPAttributeList.h b/contrib/ldapc++/src/LDAPAttributeList.h new file mode 100644 index 0000000..f03275e --- /dev/null +++ b/contrib/ldapc++/src/LDAPAttributeList.h @@ -0,0 +1,121 @@ +// $OpenLDAP$ +/* + * Copyright 2000-2022 The OpenLDAP Foundation, All Rights Reserved. + * COPYING RESTRICTIONS APPLY, see COPYRIGHT file + */ + + +#ifndef LDAP_ATTRIBUTE_LIST_H +#define LDAP_ATTRIBUTE_LIST_H + +#include +#include +#include + +class LDAPAttribute; +class LDAPAsynConnection; +class LDAPMsg; + +/** + * This container class is used to store multiple LDAPAttribute-objects. + */ +class LDAPAttributeList{ + typedef std::list ListType; + + private : + ListType m_attrs; + + public : + typedef ListType::const_iterator const_iterator; + typedef ListType::iterator iterator; + + + /** + * Copy-constructor + */ + LDAPAttributeList(const LDAPAttributeList& al); + + /** + * For internal use only + * + * This constructor is used by the library internally to create a + * list of attributes from a LDAPMessage-struct that was return by + * the C-API + */ + LDAPAttributeList(const LDAPAsynConnection *ld, LDAPMessage *msg); + + /** + * Constructs an empty list. + */ + LDAPAttributeList(); + + /** + * Destructor + */ + virtual ~LDAPAttributeList(); + + /** + * @return The number of LDAPAttribute-objects that are currently + * stored in this list. + */ + size_t size() const; + + /** + * @return true if there are zero LDAPAttribute-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; + + /** + * Get an Attribute by its AttributeType + * @param name The name of the Attribute to look for + * @return a pointer to the LDAPAttribute with the AttributeType + * "name" or 0, if there is no Attribute of that Type + */ + const LDAPAttribute* getAttributeByName(const std::string& name) const; + + /** + * Adds one element to the end of the list. + * @param attr The attribute to add to the list. + */ + void addAttribute(const LDAPAttribute& attr); + + /** + * Deletes all values of an Attribute for the list + * @param type The attribute type to be deleted. + */ + void delAttribute(const std::string& type); + + /** + * Replace an Attribute in the List + * @param attr The attribute to add to the list. + */ + void replaceAttribute(const LDAPAttribute& attr); + + /** + * Translates the list of Attributes to a 0-terminated array of + * LDAPMod-structures as needed by the C-API + */ + LDAPMod** toLDAPModArray() const; + + /** + * This method can be used to dump the data of a LDAPResult-Object. + * It is only useful for debugging purposes at the moment + */ + friend std::ostream& operator << (std::ostream& s, + const LDAPAttributeList& al); +}; + +#endif // LDAP_ATTRIBUTE_LIST_H + -- cgit v1.2.3