153 if (name && strchr(name,
'/')) {
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) {
505 if (
set)
set->ls(
Int_t(1));
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();
644 if (set->GetParent() ==
this) set->SetParent(0);
662 if (
set && (set->GetParent() ==
this) )
set->SetParent(0);
691 if (!callback)
return kStop;
696 if (
fList && depth != 1 ) {
699 while ( (d = (
TDataSet *)next()) ) {
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())) {
virtual Bool_t IsMarked() const
void Add(TObject *obj, const char *name=0, Int_t check=-1)
Add object with name to browser.
virtual const char * GetName() const
Returns name of object.
virtual Int_t Write(const char *name=0, Int_t option=0, Int_t bufsize=0)
Write this object to the current directory.
virtual TObject * Remove(TObject *obj)=0
virtual void Add(TDataSet *dataset)
virtual void Clear(Option_t *option="")=0
static Int_t DecreaseDirLevel()
Decrease the indentation level for ls().
void MarkAll()
Mark all members of this dataset.
TDataSet(const char *name, const char *title)
virtual TDataSet * FindByTitle(const Char_t *title, const Char_t *path="", Option_t *opt="")
to be documented
virtual TObject * Clone(const char *newname="") const
the custom implementation fo the TObject::Clone
static TDataSet * GetMainSet()
return pointer to the main dataset
virtual void ls(Option_t *option="") const
// ls(Option_t <em>option) // // option - defines the path to be listed // = "</em>" - means print al...
virtual EDataSetPass Pass(EDataSetPass(*callback)(TDataSet *), Int_t depth=0)
// Pass (callback,depth) // // Calls callback(this) for all datasets those recursively // // Paramete...
R__ALWAYS_INLINE Bool_t TestBit(UInt_t f) const
virtual TDataSet * Last() const
Return the last object in the list. Returns 0 when list is empty.
virtual TDataSet * First() const
Return the first object in the list. Returns 0 when list is empty.
virtual Bool_t IsEmpty() const
return kTRUE if the "internal" collection has no member
TDataSet mainSet("DSMAIN")
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...
virtual void Delete(Option_t *opt="")
Delete - deletes the list of the TDataSet objects and all "Structural Members" as well This method do...
virtual void Remove(TDataSet *set)
Remiove the "set" from this TDataSet.
TDataSet * GetRealParent()
return real parent
virtual void Browse(TBrowser *b)
Browse this dataset (called by TBrowser).
virtual void SetObject(TObject *obj)
The depricated method (left here for the sake of the backward compatibility)
void SetBit(UInt_t f, Bool_t set)
Set or unset the user status bits as specified in f.
virtual TDataSet * FindByName(const char *name, const char *path="", Option_t *opt="") const
Full description see: TDataSetIter::Find.
virtual TObject * RemoveAt(Int_t idx)
if object in a list can be deleted
virtual void Sort(Bool_t order=kSortAscending)
Sort linked list.
virtual TDataSet * Instance() const
apply the class default ctor to instantiate a new object of the same kind.
Sequenceable collection abstract base class.
void InvertAllMarks()
Invert mark bit for all members of this dataset.
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...
The TNamed class is the base class for all named ROOT classes.
virtual TDataSet * Next() const
Return the object next to this one in the parent structure This convinient but time-consuming.
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 Print(Option_t *option="") const
Print TNamed name and title.
Using a TBrowser one can browse all ROOT objects.
virtual void AddLast(TObject *obj)=0
virtual void SetWrite()
One should not use this method but TDataSet::Write instead This method os left here for the sake of t...
virtual TObject * GetObject() const
The depricated method (left here for the sake of the backward compatibility)
static TDataSet * fgMainSet
virtual void AddLast(TDataSet *dataset)
Add TDataSet object at the end of the dataset list of this dataset.
virtual TDataSet * FindByName(const Char_t *name, const Char_t *path="", Option_t *opt="")
to be documented
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
virtual TDataSet * Find(const char *path) const
Full description see: TDataSetIter::Find.
static TDataSet * instance()
virtual TString Path() const
return the full path of this data set
virtual TDataSet * FindByTitle(const char *title, const char *path="", Option_t *opt="") const
Full description see: TDataSetIter::Find.
virtual ~TDataSet()
std::cout << "Default destructor for " << GetName() << " - " << GetTitle() << std::endl; ...
virtual TDataSet * FindByPath(const char *path) const
Aliase for TDataSet::Find(const Char_t *path) method.
virtual void AddFirst(TDataSet *dataset)
Add TDataSet object at the beginning of the dataset list of this dataset.
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...
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(TObject *obj, Int_t idx)=0
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 AddFirst(TObject *obj)=0
virtual void Sort()
Sort recursively all members of the TDataSet with TList::Sort method.
static Int_t GetDirLevel()
return directory level
virtual TObject * At(Int_t idx) const =0
Mother of all ROOT objects.
virtual TDataSet * Prev() const
Return the object that is previous to this one in the parent structure This convinient but time-consu...
static Int_t IncreaseDirLevel()
Increase the indentation level for ls().
virtual void SetParent(TDataSet *parent=0)
Break the "parent" relationship with the current object parent if present parent != 0 Makes this obje...
virtual void Update()
Update()
virtual TDataSet * Find(const Char_t *path, TDataSet *rootset=0, Bool_t mkdir=kFALSE, Bool_t titleFlag=kFALSE)
// titleFlag = kFALSE; use object name as key (by default) // kTRUE; use object title as key and igno...
you should not use this method at all Int_t Int_t Double_t Double_t Double_t Int_t Double_t Double_t Double_t Double_t b
virtual Long_t HasData() const
void UnMarkAll()
UnMark all members of this dataset.
virtual void SetTitle(const char *title="")
Set the title of the TNamed.
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 TSeqCollection * GetCollection() const
virtual void Warning(const char *method, const char *msgfmt,...) const
Issue warning message.
void AddMain(TDataSet *set)
add data set to main data set
void MakeCollection()
Create the internal container at once if any.
virtual TObject * First() const =0
virtual const char * GetTitle() const
Returns title of object.
virtual TObject * Last() const =0
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 TDataSet * GetParent() const
virtual Int_t GetListSize() const