Add - adds the set to the dataset defined with the second parameters
TDataSet dataset != 0 - Add the set to the TDataSet *dataset
= 0 - (by default) to the current TDataSet defined
with fWorkingDataSet data member
returns the pointer to set is success or ZERO poiner
Note: If this TDataSetIter is empty (i.e. Cwd() returns 0), the "set"
becomes the "root" dataset of this iterator //

TDataSet *TDataSetIter::Cd(const Char_t *dirname)
Change the current working directory to dirname
Returns the pointer to the new "working"TDataSet
======= 0, if the new directory doesn't exist.
Remark: The name = ".." has a special meaning.
------ TDataSetIter::Cd("..") returns the parent set
But one still can not use ".." as a legal part
of the full path

TDataSet *TDataSetIter::Cd(const TDataSet *ds)
Make: Cwd() = ds;
Look for the first occurence of the "ds" pointer for the current
TDataSet in respect of the Cwd() if any
Change the current working directory to ds if present
Returns the pointer to the new "working"TDataSet (i.e. ds)
======= 0, if the new directory doesn't exist.

FindDataSet looks for the object with the name supplied across dataset.
name - the "base" name title (with no path) of the TDataSet (see: opt = -t)
path - path to start the search from (the current dataset "by default")
opt = "-i" - case insensitive search
"-t" - first <name> parameter defines the object "title" rather the object "name"
Note: If the name provided is not unique
the first found is returned.

Notify(TDataSet *dataset)
This dummy method is called when TDataSetIter::Find dives in "dataset"
to look for thew next level of the dataset's
printf("void TDataSetIter::Notify(TDataSet *) level: %d %s\n",fDepth,ds->GetName());

Remove the TDataSet *dataset from the current dataset
If the current dataset is the deleted dataset the its parent
becomes the "current dataset" or 0 if this dataset has no parent.
returns: the "current dataset" pointer

returns the pointer the "next"TDataSet object
= 0 if all objects have been returned.
mode = kContinue - default normal mode
kPrune - stop passing of the current branch but continue with the next one if any
kUp - break passing, return to the previous level, then continue
all other - are treated as "kContinue"

Shunt - moves the set to the dataset defined with the second parameters
TDataSet dataset != 0 - Add the set to the TDataSet *dataset
= 0 - (by default) to the current TDataSet defined
with fWorkingDataSet data member
returns the pointer to set if successful or ZERO pointer
Note: If this TDataSetIter is empty (i.e. Cwd() returns 0), the "set"
becomes the "root" dataset of this iterator //

operator [] returns the pointer to the TDataSet if it does contain
any data (TTable for example)
Input:
path = The path to the dataset to find
Output:
pointer to the dataset if it found and
its TDataSet::HasData() method returns non-zero
(see for example TTable::HasData() )