52 int sz = fIndexes.size();
57 if (goinside && (fCurrent()!=0) && ((fMaxLevel<0) || (sz<fMaxLevel)))
61 fIndexes.resize(sz+1);
63 fFolders.Add(fCurrent);
69 if (sz==0) { fCurrent.
Release();
break; }
73 Reference child = fFolders.GetObject(sz-1)->GetChildRef(fIndexes[sz-1]);
80 fFolders.RemoveAt(sz);
86 if (fCurrent()) fFullName = fCurrent()->ItemName(
false);
93 return (lvl<fFolders.GetSize()) ? fFolders[lvl].GetObject() : 0;
101 DOUT0(
"%*s %s", iter.level()*2,
"", iter.name());
Iterator over objects hierarchy
Object * next(bool goinside=true)
Object * parent(unsigned lvl)
Returns parents of current object.
Iterator(Reference ref, int maxlevel=-1)
Limit how deep iterator allowed to go inside hierarchy.
static void PrintHieararchy(Reference ref)
Base class for most of the DABC classes.
Reference GetChildRef(unsigned n) const
returns reference on child object
void Release()
Releases reference on the object.