1 /* $NetBSD: LDAPRequest.h,v 1.1.1.2 2010/03/08 02:14:20 lukem Exp $ */ 2 3 // OpenLDAP: pkg/ldap/contrib/ldapc++/src/LDAPRequest.h,v 1.4.10.3 2008/04/14 23:09:26 quanah Exp 4 /* 5 * Copyright 2000, OpenLDAP Foundation, All Rights Reserved. 6 * COPYING RESTRICTIONS APPLY, see COPYRIGHT file 7 */ 8 9 10 #ifndef LDAP_REQUEST_H 11 #define LDAP_REQUEST_H 12 13 #include <LDAPConstraints.h> 14 #include <LDAPAsynConnection.h> 15 #include <LDAPMessageQueue.h> 16 17 class LDAPUrl; 18 19 /** 20 * For internal use only 21 * 22 * Each request that is sent to a LDAP-server by this library is 23 * represented by a special object that contains the parameters and some 24 * other info of the request. This virtual class is the common base classe 25 * for these specialized request classes. 26 */ 27 class LDAPRequest{ 28 29 public : 30 static const int BIND=0; 31 static const int UNBIND=2; 32 static const int SEARCH=3; 33 static const int MODIFY=7; 34 static const int ADD=8; 35 static const int DELETE=10; 36 static const int COMPARE=14; 37 38 LDAPRequest(const LDAPRequest& req); 39 LDAPRequest(LDAPAsynConnection* conn, 40 const LDAPConstraints* cons, bool isReferral=false, 41 const LDAPRequest* parent=0); 42 virtual ~LDAPRequest(); 43 44 const LDAPConstraints* getConstraints() const; 45 const LDAPAsynConnection* getConnection() const; 46 virtual LDAPMsg *getNextMessage() const; 47 int getType()const; 48 int getMsgID() const; 49 int getHopCount() const; 50 51 /** 52 * @return The LDAPRequest that has created this object. Or 0 if 53 * this object was not created by another request. 54 */ 55 const LDAPRequest* getParent() const; 56 57 /** 58 * @return true if this object was created during the automatic 59 * chasing of referrals. Otherwise false 60 */ 61 bool isReferral() const; 62 63 void unbind() const; 64 65 /** 66 * This method encodes the request an calls the apprpriate 67 * functions of the C-API to send the Request to a LDAP-Server 68 */ 69 virtual LDAPMessageQueue* sendRequest()=0; 70 virtual LDAPRequest* followReferral(LDAPMsg* ref); 71 72 /** 73 * Compare this request with another on. And returns true if they 74 * have the same parameters. 75 */ 76 virtual bool equals(const LDAPRequest* req) const; 77 78 bool isCycle() const; 79 80 protected : 81 bool m_isReferral; 82 int m_requestType; 83 LDAPConstraints *m_cons; 84 LDAPAsynConnection *m_connection; 85 const LDAPRequest* m_parent; 86 int m_hopCount; 87 int m_msgID; //the associated C-API Message ID 88 LDAPRequest(); 89 }; 90 #endif //LDAP_REQUEST_H 91 92