mirror of
https://git.openldap.org/openldap/openldap.git
synced 2024-12-27 03:20:22 +08:00
b1957678d4
- Fixed some trouble time.h / sys/time.h - modified include statements
88 lines
2.5 KiB
C++
88 lines
2.5 KiB
C++
/*
|
|
* Copyright 2000, 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 classe
|
|
* 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;
|
|
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)=0;
|
|
|
|
/**
|
|
* 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
|
|
|