154 Error(
"TDataSet::TDataSet",
"dataset name (%s) cannot contain a slash",
name);
159 if (parent) parent->
Add(
this);
195 while ((set = next())) {
198 if ( optall || (optsel && parent ==
this) )
237 if (!dataset)
return;
256 if (!dataset)
return;
271 if (!dataset)
return;
285 if (!dataset)
return;
302 while ((obj = next()))
b->Add(obj,obj->
GetName());
326 if (!thisList)
return;
328 TIter next(thisList);
331 while ((son = (
TDataSet *)next())) {
332 if ( (!son->TObject::IsOnHeap()) || (
this != son->TDataSet::GetParent()) )
continue;
334 son->TDataSet::SetParent(0);
335 if (son->TDataSet::Last()) { son->TDataSet::Delete(); }
340 thisList->
Clear(
"nodelete");
365 return next.
Find(path);
430 Print(
"***DUMMY GetObject***\n");
454 while ( (set = (
TDataSet *)next()) && (set !=
this) ){}
472 while ( (set = (
TDataSet *)next()) && (set !=
this) ){prev = set;}
482 Print(
"***DUMMY PutObject***\n");
497 if (option && !strcmp(option,
"*"))
ls(
Int_t(0));
500 if (option && strlen(option) > 0) {
507 if (option)
Warning(
"ls",
"Dataset <%s> not found",option);
530 if (!
fList || depth == 1 )
return;
531 if (!depth) depth = 99999;
558 if (len<0) {
return !strcmp (
GetName(),dirname);
559 }
else {
return !strncmp(
GetName(),dirname,len);}
562 if (len==-1) len = strlen(dirname);
563 for (
int i=0;i<len;i++) {
if ( tolower(
name[i])!=tolower(dirname[i]))
return 0;}
576 while ( (set = nextMark()) ) set->
Mark();
599 while (( set = nextMark()) ) {
631 str = parent->
Path();
691 if (!callback)
return kStop;
696 if (
fList && depth != 1 ) {
700 condition =
d->Pass(callback, depth == 0 ? 0 : --depth);
701 if (condition ==
kStop || condition ==
kUp)
break;
732 if (!callback)
return kStop;
737 if (
fList && depth != 1 ) {
741 condition =
d->Pass(callback, user, depth == 0 ? 0 : --depth);
742 if (condition ==
kStop)
break;
743 if (condition ==
kUp )
break;
760 if (!
fList)
return 0;
765 while ((son = (
TDataSet *)next())) {
813 if (newParent) newParent->
Add(
this);
833 while((newset = nextnew())) {
840 while ( ((oldset = (
TDataSet *)nextold())!=0) && !found) {
844 if ( (oldset != newset) && oldset->
IsThisDir(newname) ) {
852 if (!found) newset->
Shunt(
this);
868 while(( set = next())) set->
Update();
879 while ((ds=next())) {
TDataSet mainSet("DSMAIN")
Using a TBrowser one can browse all ROOT objects.
virtual TObject * Remove(TObject *obj)=0
virtual void Clear(Option_t *option="")=0
virtual TDataSet * FindByName(const Char_t *name, const Char_t *path="", Option_t *opt="")
to be documented
virtual TDataSet * FindByTitle(const Char_t *title, const Char_t *path="", Option_t *opt="")
to be documented
virtual TDataSet * Find(const Char_t *path, TDataSet *rootset=0, Bool_t mkdir=kFALSE, Bool_t titleFlag=kFALSE)
virtual TObject * GetObject() const
The depricated method (left here for the sake of the backward compatibility)
void UnMarkAll()
UnMark all members of this dataset.
virtual Bool_t IsEmpty() const
return kTRUE if the "internal" collection has no member
virtual TDataSet * Prev() const
Return the object that is previous to this one in the parent structure This convinient but time-consu...
virtual Int_t GetListSize() const
void InvertAllMarks()
Invert mark bit for all members of this dataset.
virtual TDataSet * First() const
Return the first object in the list. Returns 0 when list is empty.
virtual void ls(Option_t *option="") const
virtual TObject * Clone(const char *newname="") const
the custom implementation fo the TObject::Clone
virtual void SetWrite()
One should not use this method but TDataSet::Write instead This method os left here for the sake of t...
static TDataSet * GetMainSet()
return pointer to the main dataset
virtual TSeqCollection * GetCollection() const
virtual TDataSet * Instance() const
apply the class default ctor to instantiate a new object of the same kind.
virtual TDataSet * Next() const
Return the object next to this one in the parent structure This convinient but time-consuming.
virtual TDataSet * Last() const
Return the last object in the list. Returns 0 when list is empty.
virtual TDataSet * RemoveAt(Int_t idx)
Remove object from the "idx" cell of this set and return the pointer to the removed object if any.
virtual void PrintContents(Option_t *opt="") const
Callback method to complete ls() method recursive loop This is to allow to sepoarate navigation and t...
virtual TString Path() const
return the full path of this data set
virtual Bool_t IsMarked() const
virtual ~TDataSet()
std::cout << "Default destructor for " << GetName() << " - " << GetTitle() << std::endl;
virtual void AddAtAndExpand(TDataSet *dataset, Int_t idx=0)
!!!! Under construction !!!!! Add TDataSet object at the "idx" position in ds or at the end of the da...
void MarkAll()
Mark all members of this dataset.
virtual EDataSetPass Pass(EDataSetPass(*callback)(TDataSet *), Int_t depth=0)
virtual Long_t HasData() const
virtual Int_t Write(const char *name=0, Int_t option=0, Int_t bufsize=0)
To Write object first we should temporary break the the backward fParent pointer (otherwise ROOT foll...
virtual TDataSet * FindByTitle(const char *title, const char *path="", Option_t *opt="") const
Full description see: TDataSetIter::Find.
void MakeCollection()
Create the internal container at once if any.
virtual Bool_t IsThisDir(const char *dirname, int len=-1, int ignorecase=0) const
Compare the name of the TDataSet with "dirname" ignorercase flags indicates whether the comparision i...
virtual void Remove(TDataSet *set)
Remiove the "set" from this TDataSet.
virtual void Sort()
Sort recursively all members of the TDataSet with TList::Sort method.
virtual TDataSet * GetParent() const
virtual TDataSet * FindByName(const char *name, const char *path="", Option_t *opt="") const
Full description see: TDataSetIter::Find.
TDataSet(const char *name, const char *title)
virtual void AddLast(TDataSet *dataset)
Add TDataSet object at the end of the dataset list of this dataset.
virtual void SetObject(TObject *obj)
The depricated method (left here for the sake of the backward compatibility)
virtual void Shunt(TDataSet *newParent=0)
Remove the object from the original and add it to dataset TDataSet dataset != 0 - Make this object th...
virtual void SetParent(TDataSet *parent=0)
Break the "parent" relationship with the current object parent if present parent !...
static TDataSet * fgMainSet
virtual void Delete(Option_t *opt="")
Delete - deletes the list of the TDataSet objects and all "Structural Members" as well This method do...
TDataSet * GetRealParent()
return real parent
virtual void Browse(TBrowser *b)
Browse this dataset (called by TBrowser).
virtual void Add(TDataSet *dataset)
static TDataSet * instance()
virtual TDataSet * FindByPath(const char *path) const
Aliase for TDataSet::Find(const Char_t *path) method.
virtual Int_t Purge(Option_t *opt="")
Purge - deletes all "dummy" "Structural Members" those are not ended up with some dataset with data i...
virtual void AddAt(TDataSet *dataset, Int_t idx=0)
Add TDataSet object at the "idx" position in ds or at the end of the dataset The final result is defi...
void AddMain(TDataSet *set)
add data set to main data set
virtual void Update()
Update()
virtual TDataSet * Find(const char *path) const
Full description see: TDataSetIter::Find.
virtual void AddFirst(TDataSet *dataset)
Add TDataSet object at the beginning of the dataset list of this dataset.
virtual void Sort(Bool_t order=kSortAscending)
Sort linked list.
The TNamed class is the base class for all named ROOT classes.
virtual void Print(Option_t *option="") const
Print TNamed name and title.
virtual void SetTitle(const char *title="")
Set the title of the TNamed.
virtual const char * GetTitle() const
Returns title of object.
virtual const char * GetName() const
Returns name of object.
Mother of all ROOT objects.
virtual Int_t Write(const char *name=0, Int_t option=0, Int_t bufsize=0)
Write this object to the current directory.
R__ALWAYS_INLINE Bool_t TestBit(UInt_t f) const
virtual void Warning(const char *method, const char *msgfmt,...) const
Issue warning message.
void SetBit(UInt_t f, Bool_t set)
Set or unset the user status bits as specified in f.
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
@ kCanDelete
if object in a list can be deleted
static Int_t IncreaseDirLevel()
Increase the indentation level for ls().
static Int_t DecreaseDirLevel()
Decrease the indentation level for ls().
static Int_t GetDirLevel()
return directory level
Sequenceable collection abstract base class.
virtual TObject * RemoveAt(Int_t idx)
virtual void AddLast(TObject *obj)=0
virtual void AddAt(TObject *obj, Int_t idx)=0
virtual TObject * Last() const =0
virtual TObject * First() const =0
virtual TObject * At(Int_t idx) const =0
virtual void AddFirst(TObject *obj)=0
std::string GetName(const std::string &scope_name)