#ifndef ROOT_TDataSet
#define ROOT_TDataSet
#include "TList.h"
#include "TObjArray.h"
#include "TNamed.h"
#include "TNode.h"
class TDataSetIter;
class TBrowser;
class TDataSet : public TNamed
{
friend class TDataSetIter;
public:
typedef enum {
kContinue,
kPrune,
kStop,
kUp,
kStruct,
kAll,
kRefs,
kMarked
} EDataSetPass;
private:
void operator=(const TDataSet &){}
protected:
static TDataSet *fgMainSet;
TDataSet *fParent;
TSeqCollection *fList;
virtual void SetMother(TObject *mother) {SetParent((TDataSet*)mother);}
TDataSet(const char *name,const char *title):
TNamed(name,title),fParent(0),fList(0){}
void AddMain(TDataSet *set);
static EDataSetPass SortIt(TDataSet *ds);
static EDataSetPass SortIt(TDataSet *ds,void *user);
TDataSet *GetRealParent();
void MakeCollection();
public:
enum ESetBits {
kMark = BIT(22)
,kArray = BIT(20)
};
enum EBitOpt {
kSet = kTRUE,
kReset = kFALSE
};
TDataSet(const char *name="", TDataSet *parent=0, Bool_t arrayFlag = kFALSE);
TDataSet(const TDataSet &src,EDataSetPass iopt=kAll);
TDataSet(TNode &src);
virtual ~TDataSet();
virtual void Add(TDataSet *dataset);
virtual void AddAt(TDataSet *dataset,Int_t idx=0);
virtual void AddAtAndExpand(TDataSet *dataset, Int_t idx=0);
virtual void AddFirst(TDataSet *dataset);
virtual void AddLast(TDataSet *dataset);
TDataSet *At(Int_t idx) const;
virtual void Browse(TBrowser *b);
virtual TObject *Clone(const char *newname="") const;
virtual void Delete(Option_t *opt="");
virtual TDataSet *Find(const char *path) const;
virtual TDataSet *FindByName(const char *name,const char *path="",Option_t *opt="") const;
virtual TDataSet *FindByPath(const char *path) const;
virtual TDataSet *FindByTitle(const char *title,const char *path="",Option_t *opt="") const;
TObject *FindObject(const char *name) const {return FindByName(name);}
TObject *FindObject(const TObject *o) const { return TObject::FindObject(o);}
virtual TDataSet *First() const;
TObjArray *GetObjArray() const { return (TObjArray *)fList; }
virtual TSeqCollection *GetCollection() const { return (TSeqCollection *)fList; }
TList *GetList() const { return (TList *)fList; }
virtual Int_t GetListSize() const;
static TDataSet *GetMainSet();
TObject *GetMother() const { return (TObject*)GetParent();}
virtual TObject *GetObject() const;
virtual TDataSet *GetParent() const { return fParent;}
virtual Long_t HasData() const {return 0;}
virtual TDataSet *Instance() const;
static TDataSet *instance();
virtual TString Path() const;
virtual EDataSetPass Pass(EDataSetPass ( *callback)(TDataSet *),Int_t depth=0);
virtual EDataSetPass Pass(EDataSetPass ( *callback)(TDataSet *,void*),void *user,Int_t depth=0);
virtual void PrintContents(Option_t *opt="") const;
virtual Int_t Purge(Option_t *opt="");
virtual void Remove(TDataSet *set);
virtual TDataSet *RemoveAt(Int_t idx);
virtual void SetMother(TDataSet *parent=0){SetParent(parent);};
virtual void SetObject(TObject *obj);
virtual void SetParent(TDataSet *parent=0);
virtual void SetWrite();
virtual void Shunt(TDataSet *newParent=0);
virtual void Sort();
virtual Bool_t IsEmpty() const;
virtual Bool_t IsFolder() const {return kTRUE;}
virtual Bool_t IsMarked() const ;
virtual Bool_t IsThisDir(const char *dirname,int len=-1,int ignorecase=0) const ;
virtual TDataSet *Last() const;
virtual void ls(Option_t *option="") const;
virtual void ls(Int_t depth) const;
void Mark();
void UnMark();
void MarkAll();
void UnMarkAll();
void InvertAllMarks();
void Mark(UInt_t flag,EBitOpt reset=kSet);
virtual TDataSet *Next() const;
virtual TDataSet *Prev() const;
virtual void Update();
virtual void Update(TDataSet *set,UInt_t opt=0);
virtual Int_t Write(const Text_t *name=0, Int_t option=0, Int_t bufsize=0);
virtual Int_t Write(const Text_t *name=0, Int_t option=0, Int_t bufsize=0) const;
ClassDef(TDataSet,1)
};
inline void TDataSet::Add(TDataSet *dataset){ AddLast(dataset); }
inline TDataSet *TDataSet::At(Int_t idx) const {return fList ? (TDataSet *)fList->At(idx) : 0; }
inline Int_t TDataSet::GetListSize() const {return (fList) ? fList->GetSize():0;}
inline TDataSet *TDataSet::instance() { return new TDataSet();}
inline Bool_t TDataSet::IsMarked() const { return TestBit(kMark); }
inline void TDataSet::Mark(UInt_t flag,EBitOpt reset){ SetBit(flag,reset); }
inline void TDataSet::Mark() { Mark(kMark,kSet); }
inline void TDataSet::UnMark() { Mark(kMark,kReset); }
#endif
Last change: Wed Jun 25 08:36:02 2008
Last generated: 2008-06-25 08:36
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.