From b527294153be3b79563c82c66102adc0004736c0 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Mon, 15 Apr 2024 19:54:12 +0200 Subject: Adding upstream version 2.6.7+dfsg. Signed-off-by: Daniel Baumann --- contrib/ldapc++/src/LDAPMessageQueue.h | 72 ++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 contrib/ldapc++/src/LDAPMessageQueue.h (limited to 'contrib/ldapc++/src/LDAPMessageQueue.h') diff --git a/contrib/ldapc++/src/LDAPMessageQueue.h b/contrib/ldapc++/src/LDAPMessageQueue.h new file mode 100644 index 0000000..9e42d80 --- /dev/null +++ b/contrib/ldapc++/src/LDAPMessageQueue.h @@ -0,0 +1,72 @@ +// $OpenLDAP$ +/* + * Copyright 2000-2022 The OpenLDAP Foundation, All Rights Reserved. + * COPYING RESTRICTIONS APPLY, see COPYRIGHT file + */ + + +#ifndef LDAP_MESSAGE_QUEUE_H +#define LDAP_MESSAGE_QUEUE_H + +#include + +#include +#include + +class LDAPAsynConnection; +class LDAPRequest; +class LDAPSearchRequest; +class LDAPUrl; +typedef std::stack LDAPRequestStack; +typedef std::list LDAPRequestList; + +/** + * This class is created for the asynchronous LDAP-operations. And can be + * used by the client to retrieve the results of an operation. + */ +class LDAPMessageQueue{ + public : + + /** + * This creates a new LDAPMessageQueue. For a LDAP-request + * + * @param conn The Request for that is queue can be used to get + * the results. + */ + LDAPMessageQueue(LDAPRequest *conn); + /** + * Destructor + */ + ~LDAPMessageQueue(); + + /** + * This method reads exactly one Message from the results of a + * Request. + * @throws LDAPException + * @return A pointer to an object of one of the classes that were + * derived from LDAPMsg. The user has to cast it to the + * correct type (e.g. LDAPResult or LDAPSearchResult) + */ + LDAPMsg* getNext(); + + /** + * For internat use only. + * + * The method is used to start the automatic referral chasing + */ + LDAPRequest* chaseReferral(LDAPMsg* ref); + + /** + * For internal use only + * + * The referral chasing algorithm needs this method to see the + * currently active requests. + */ + LDAPRequestStack* getRequestStack(); + + private : + LDAPRequestStack m_activeReq; + LDAPRequestList m_issuedReq; +}; +#endif //ifndef LDAP_MESSAGE_QUEUE_H + -- cgit v1.2.3