00001 // @(#)root/ldap:$Id: TLDAPEntry.h 20882 2007-11-19 11:31:26Z rdm $ 00002 // Author: Evgenia Smirnova 21/09/2001 00003 00004 /************************************************************************* 00005 * For the licensing terms see $ROOTSYS/LICENSE. * 00006 * For the list of contributors see $ROOTSYS/README/CREDITS. * 00007 *************************************************************************/ 00008 00009 #ifndef ROOT_TLDAPEntry 00010 #define ROOT_TLDAPEntry 00011 00012 #ifndef ROOT_TObject 00013 #include "TObject.h" 00014 #endif 00015 #ifndef ROOT_TString 00016 #include "TString.h" 00017 #endif 00018 #ifndef ROOT_TList 00019 #include "TList.h" 00020 #endif 00021 #ifndef ROOT_CintLDAP 00022 #include "CintLDAP.h" 00023 #endif 00024 00025 00026 class TLDAPServer; 00027 class TLDAPAttribute; 00028 00029 00030 class TLDAPEntry: public TObject { 00031 00032 friend class TLDAPServer; 00033 00034 private: 00035 TString fDn; // Distinguished name of entry 00036 TList *fAttr; // List of attributes 00037 mutable Int_t fNCount; // Index of attribute to be returned from GetAttribute() 00038 00039 LDAPMod **GetMods(Int_t op); // Get array of LDAPMod structures of the entry 00040 00041 protected: 00042 TLDAPEntry& operator=(const TLDAPEntry&); 00043 00044 public: 00045 TLDAPEntry(const char *dn); 00046 TLDAPEntry(const TLDAPEntry &e); 00047 virtual ~TLDAPEntry(); 00048 00049 const char *GetDn() const { return fDn; } 00050 void SetDn(const char *dn) { fDn = dn; } 00051 void AddAttribute(const TLDAPAttribute &attr); 00052 TLDAPAttribute *GetAttribute() const; 00053 TLDAPAttribute *GetAttribute(const char *name) const; 00054 void DeleteAttribute(const char *name); 00055 Int_t GetCount() const { return fAttr->GetSize(); } 00056 Bool_t IsReferral() const; 00057 TList *GetReferrals() const; 00058 void Print(Option_t * = "") const; 00059 00060 ClassDef(TLDAPEntry, 0) //describe one entry in LDAP 00061 }; 00062 00063 #endif