diff options
Diffstat (limited to 'contrib/ldapc++/src/LDAPRequest.h')
-rw-r--r-- | contrib/ldapc++/src/LDAPRequest.h | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/contrib/ldapc++/src/LDAPRequest.h b/contrib/ldapc++/src/LDAPRequest.h new file mode 100644 index 0000000..059002b --- /dev/null +++ b/contrib/ldapc++/src/LDAPRequest.h @@ -0,0 +1,89 @@ +// $OpenLDAP$ +/* + * Copyright 2000-2022 The OpenLDAP Foundation, All Rights Reserved. + * COPYING RESTRICTIONS APPLY, see COPYRIGHT file + */ + + +#ifndef LDAP_REQUEST_H +#define LDAP_REQUEST_H + +#include <LDAPConstraints.h> +#include <LDAPAsynConnection.h> +#include <LDAPMessageQueue.h> + +class LDAPUrl; + +/** + * For internal use only + * + * Each request that is sent to a LDAP-server by this library is + * represented by a special object that contains the parameters and some + * other info of the request. This virtual class is the common base class + * for these specialized request classes. + */ +class LDAPRequest{ + + public : + static const int BIND=0; + static const int UNBIND=2; + static const int SEARCH=3; + static const int MODIFY=7; + static const int ADD=8; + static const int DELETE=10; + static const int COMPARE=14; + + LDAPRequest(const LDAPRequest& req); + LDAPRequest(LDAPAsynConnection* conn, + const LDAPConstraints* cons, bool isReferral=false, + const LDAPRequest* parent=0); + virtual ~LDAPRequest(); + + const LDAPConstraints* getConstraints() const; + const LDAPAsynConnection* getConnection() const; + virtual LDAPMsg *getNextMessage() const; + int getType()const; + int getMsgID() const; + int getHopCount() const; + + /** + * @return The LDAPRequest that has created this object. Or 0 if + * this object was not created by another request. + */ + const LDAPRequest* getParent() const; + + /** + * @return true if this object was created during the automatic + * chasing of referrals. Otherwise false + */ + bool isReferral() const; + + void unbind() const; + + /** + * This method encodes the request an calls the appropriate + * functions of the C-API to send the Request to a LDAP-Server + */ + virtual LDAPMessageQueue* sendRequest()=0; + virtual LDAPRequest* followReferral(LDAPMsg* ref); + + /** + * Compare this request with another on. And returns true if they + * have the same parameters. + */ + virtual bool equals(const LDAPRequest* req) const; + + bool isCycle() const; + + protected : + bool m_isReferral; + int m_requestType; + LDAPConstraints *m_cons; + LDAPAsynConnection *m_connection; + const LDAPRequest* m_parent; + int m_hopCount; + int m_msgID; //the associated C-API Message ID + LDAPRequest(); +}; +#endif //LDAP_REQUEST_H + |