X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=contrib%2Fldapc%2B%2B%2Fsrc%2FLDAPRequest.h;h=9686cae0a1ff7a09b1a190adef359316c6fa02c0;hb=4d0d12db27b3b44cc36acc089b0e640320480fe7;hp=b77aa945cfa151b30e970786dd33b6777e27a020;hpb=84d0e262348b5c3ac877ce49424df89d7cb5fdff;p=openldap diff --git a/contrib/ldapc++/src/LDAPRequest.h b/contrib/ldapc++/src/LDAPRequest.h index b77aa945cf..9686cae0a1 100644 --- a/contrib/ldapc++/src/LDAPRequest.h +++ b/contrib/ldapc++/src/LDAPRequest.h @@ -1,44 +1,30 @@ +// $OpenLDAP$ /* - * Copyright 2000, OpenLDAP Foundation, All Rights Reserved. + * Copyright 2000-2012 The OpenLDAP Foundation, All Rights Reserved. * COPYING RESTRICTIONS APPLY, see COPYRIGHT file */ -// $Id: LDAPRequest.h,v 1.11 2000/08/31 17:43:49 rhafer Exp $ #ifndef LDAP_REQUEST_H #define LDAP_REQUEST_H -#include "LDAPConstraints.h" -#include "LDAPAsynConnection.h" -#include "LDAPMessageQueue.h" +#include +#include +#include class LDAPUrl; -//!virtual class for Requests +/** + * 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 classe + * for these specialized request classes. + */ class LDAPRequest{ - - protected : - bool m_isReferral; - int m_requestType; - LDAPConstraints *m_cons; - const LDAPAsynConnection *m_connection; - int m_msgID; //the associated C-API Message ID - LDAPRequest(); public : - LDAPRequest(const LDAPRequest& req); - LDAPRequest(const LDAPAsynConnection* conn, const LDAPConstraints* cons, - bool isReferral=false); - virtual ~LDAPRequest(); - virtual LDAPMessageQueue* sendRequest()=0; - virtual LDAPRequest* followReferral(LDAPUrlList *ref)=0; - const LDAPConstraints* getConstraints(); - const LDAPAsynConnection* getConnection(); - int getType()const; - int getMsgID() const; - bool isReferral() const; - bool doRebind() const; - static const int BIND=0; static const int UNBIND=2; static const int SEARCH=3; @@ -46,6 +32,58 @@ class LDAPRequest{ 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 apprpriate + * 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