#ifndef ROOT_TDirectory
#define ROOT_TDirectory
#ifndef ROOT_TNamed
#include "TNamed.h"
#endif
#ifndef ROOT_TList
#include "TList.h"
#endif
#ifndef ROOT_TDatime
#include "TDatime.h"
#endif
#ifndef ROOT_TUUID
#include "TUUID.h"
#endif
class TBrowser;
class TKey;
class TFile;
R__EXTERN TDirectory *gDirectory;
class TDirectory : public TNamed {
protected:
Bool_t fModified;
Bool_t fWritable;
TDatime fDatimeC;
TDatime fDatimeM;
Int_t fNbytesKeys;
Int_t fNbytesName;
Int_t fBufferSize;
Long64_t fSeekDir;
Long64_t fSeekParent;
Long64_t fSeekKeys;
TFile *fFile;
TObject *fMother;
TList *fList;
TList *fKeys;
TUUID fUUID;
TString fPathBuffer;
Bool_t cd1(const char *path);
static Bool_t Cd1(const char *path);
void FillFullPath(TString& buf) const;
private:
TDirectory(const TDirectory &directory);
void operator=(const TDirectory &);
public:
enum { kCloseDirectory = BIT(7) };
class TContext {
private:
TDirectory* fPrevious;
TContext(TContext&);
TContext& operator=(TContext&);
void CdNull();
public:
TContext(TDirectory* previous, TDirectory* newCurrent)
: fPrevious(previous)
{
if ( newCurrent ) newCurrent->cd();
}
TContext(TDirectory* newCurrent) : fPrevious(gDirectory)
{
if ( newCurrent ) newCurrent->cd();
}
~TContext()
{
if ( fPrevious ) fPrevious->cd();
else CdNull();
}
};
TDirectory();
TDirectory(const char *name, const char *title, Option_t *option="", TDirectory* motherDir = 0);
virtual ~TDirectory();
virtual void Append(TObject *obj);
void Add(TObject *obj) { Append(obj); }
Int_t AppendKey(TKey *key);
virtual void Browse(TBrowser *b);
void Build(TFile* motherFile = 0, TDirectory* motherDir = 0);
virtual void Clear(Option_t *option="");
virtual void Close(Option_t *option="");
virtual void Copy(TObject &) const { MayNotUse("Copy(TObject &)"); }
virtual Bool_t cd(const char *path = 0);
virtual void DeleteAll(Option_t *option="");
virtual void Delete(const char *namecycle="");
virtual void Draw(Option_t *option="");
virtual void FillBuffer(char *&buffer);
virtual TKey *FindKey(const char *keyname) const;
virtual TKey *FindKeyAny(const char *keyname) const;
virtual TObject *FindObject(const char *name) const;
virtual TObject *FindObject(const TObject *obj) const;
virtual TObject *FindObjectAny(const char *name) const;
virtual TObject *Get(const char *namecycle);
virtual TDirectory *GetDirectory(const char *namecycle, Bool_t printError = false, const char *funcname = "GetDirectory");
template <class T> inline void GetObject(const char* namecycle, T*& ptr)
{
ptr = (T*)GetObjectChecked(namecycle,TBuffer::GetClass(typeid(T)));
}
virtual void *GetObjectChecked(const char *namecycle, const char* classname);
virtual void *GetObjectChecked(const char *namecycle, const TClass* cl);
virtual void *GetObjectUnchecked(const char *namecycle);
virtual Int_t GetBufferSize() const;
const TDatime &GetCreationDate() const { return fDatimeC; }
virtual TFile *GetFile() const { return fFile; }
virtual TKey *GetKey(const char *name, Short_t cycle=9999) const;
virtual TList *GetList() const { return fList; }
virtual TList *GetListOfKeys() const { return fKeys; }
const TDatime &GetModificationDate() const { return fDatimeM; }
TObject *GetMother() const { return fMother; }
TDirectory *GetMotherDir() const { return fMother==0 ? 0 : dynamic_cast<TDirectory*>(fMother); }
virtual Int_t GetNbytesKeys() const { return fNbytesKeys; }
virtual Int_t GetNkeys() const { return fKeys->GetSize(); }
virtual Long64_t GetSeekDir() const { return fSeekDir; }
virtual Long64_t GetSeekParent() const { return fSeekParent; }
virtual Long64_t GetSeekKeys() const { return fSeekKeys; }
virtual const char *GetPathStatic() const;
virtual const char *GetPath() const;
TUUID GetUUID() const {return fUUID;}
Bool_t IsFolder() const { return kTRUE; }
Bool_t IsModified() const { return fModified; }
Bool_t IsWritable() const { return fWritable; }
virtual void ls(Option_t *option="") const;
virtual TDirectory *mkdir(const char *name, const char *title="");
virtual void Paint(Option_t *option="");
virtual void Print(Option_t *option="") const;
virtual void Purge(Short_t nkeep=1);
virtual void pwd() const;
virtual void ReadAll(Option_t *option="");
virtual Int_t ReadKeys();
virtual void RecursiveRemove(TObject *obj);
virtual void rmdir(const char *name);
virtual void Save();
virtual void SaveSelf(Bool_t force = kFALSE);
virtual void SetBufferSize(Int_t bufsize);
void SetModified() {fModified = kTRUE;}
void SetMother(const TObject *mother) {fMother = (TObject*)mother;}
virtual void SetName(const char* newname);
void SetSeekDir(Long64_t v) { fSeekDir = v; }
void SetWritable(Bool_t writable=kTRUE);
virtual Int_t Sizeof() const;
virtual Int_t Write(const char *name=0, Int_t opt=0, Int_t bufsiz=0);
virtual Int_t Write(const char *name=0, Int_t opt=0, Int_t bufsiz=0) const ;
virtual Int_t WriteTObject(const TObject *obj, const char *name=0, Option_t *option="");
template <class T> inline Int_t WriteObject(const T* obj, const char* name, Option_t *option="")
{
return WriteObjectAny(obj,TBuffer::GetClass(typeid(T)),name,option);
}
virtual Int_t WriteObjectAny(const void *obj, const char *classname, const char *name, Option_t *option="");
virtual Int_t WriteObjectAny(const void *obj, const TClass *cl, const char *name, Option_t *option="");
virtual void WriteDirHeader();
virtual void WriteKeys();
static Bool_t Cd(const char *path);
static void DecodeNameCycle(const char *namecycle, char *name, Short_t &cycle);
static void EncodeNameCycle(char *buffer, const char *name, Short_t cycle);
ClassDef(TDirectory,4)
};
#endif
ROOT page - Class index - Class Hierarchy - Top of the page
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.