#ifndef ROOT_TLDAPServer
#define ROOT_TLDAPServer
#ifndef ROOT_TObject
#include "TObject.h"
#endif
#ifndef ROOT_TString
#include "TString.h"
#endif
#ifndef ROOT_CintLDAP
#include "CintLDAP.h"
#endif
class TList;
class TLDAPResult;
class TLDAPEntry;
class TLDAPServer : public TObject {
private:
LDAP *fLd;
TString fBinddn;
TString fPassword;
Bool_t fIsConnected;
Int_t Bind();
void Unbind();
static void DeleteMods(LDAPMod **mods);
protected:
TLDAPServer(const TLDAPServer&);
TLDAPServer& operator=(const TLDAPServer&);
public:
TLDAPServer(const char *host, Int_t port = LDAP_PORT,
const char *binddn = 0, const char *password = 0,
Int_t version = LDAP_VERSION2);
virtual ~TLDAPServer();
Bool_t IsConnected() const { return fIsConnected; };
TLDAPResult *Search(const char *base = "",
Int_t scope = LDAP_SCOPE_BASE,
const char *filter = 0,
TList *attrs = 0,
Bool_t attrsonly = 0);
const char *GetNamingContexts();
const char *GetSubschemaSubentry();
TLDAPResult *GetObjectClasses();
TLDAPResult *GetAttributeTypes();
Int_t AddEntry(TLDAPEntry &entry);
Int_t ModifyEntry(TLDAPEntry &entry, Int_t mode = LDAP_MOD_REPLACE);
Int_t DeleteEntry(const char *dn);
Int_t RenameEntry(const char *dn, const char *newrdn,
Bool_t removeattr = kFALSE);
ClassDef(TLDAPServer, 0)
};
#endif