IOobjectList - gets sortedNames() method

- could also be the default

- reduce duplicate code by using some HashTable methods directly
This commit is contained in:
Mark Olesen 2009-12-01 11:08:56 +01:00
parent 4d10d06158
commit a0b3d14523
2 changed files with 33 additions and 26 deletions

View File

@ -58,7 +58,7 @@ Foam::IOobjectList::IOobjectList
} }
} }
// Create list file names in directory // Create a list of file names in this directory
fileNameList ObjectNames = fileNameList ObjectNames =
readDir(db.path(newInstance, db.dbDir()/local), fileName::FILE); readDir(db.path(newInstance, db.dbDir()/local), fileName::FILE);
@ -130,8 +130,8 @@ Foam::IOobject* Foam::IOobjectList::lookup(const word& name) const
{ {
if (IOobject::debug) if (IOobject::debug)
{ {
Info<< "IOobjectList::lookup : found " << name Info<< "IOobjectList::lookup : found "
<< endl; << name << endl;
} }
return const_cast<IOobject*>(*iter); return const_cast<IOobject*>(*iter);
@ -140,8 +140,8 @@ Foam::IOobject* Foam::IOobjectList::lookup(const word& name) const
{ {
if (IOobject::debug) if (IOobject::debug)
{ {
Info<< "IOobjectList::lookup : could not find " << name Info<< "IOobjectList::lookup : could not find "
<< endl; << name << endl;
} }
return NULL; return NULL;
@ -151,7 +151,7 @@ Foam::IOobject* Foam::IOobjectList::lookup(const word& name) const
Foam::IOobjectList Foam::IOobjectList::lookupClass(const word& ClassName) const Foam::IOobjectList Foam::IOobjectList::lookupClass(const word& ClassName) const
{ {
IOobjectList IOobjectsOfClass(size()); IOobjectList objectsOfClass(size());
for for
( (
@ -165,34 +165,26 @@ Foam::IOobjectList Foam::IOobjectList::lookupClass(const word& ClassName) const
if (IOobject::debug) if (IOobject::debug)
{ {
Info<< "IOobjectList::lookupClass : found " Info<< "IOobjectList::lookupClass : found "
<< iter()->name() << iter.key() << endl;
<< endl;
} }
IOobjectsOfClass.insert(iter()->name(), new IOobject(*iter())); objectsOfClass.insert(iter.key(), new IOobject(*iter()));
} }
} }
return IOobjectsOfClass; return objectsOfClass;
} }
Foam::wordList Foam::IOobjectList::names() const Foam::wordList Foam::IOobjectList::names() const
{ {
wordList objectNames(size()); return HashPtrTable<IOobject>::toc();
}
label count = 0;
for
(
HashPtrTable<IOobject>::const_iterator iter = begin();
iter != end();
++iter
)
{
objectNames[count++] = iter()->name();
}
return objectNames; Foam::wordList Foam::IOobjectList::sortedNames() const
{
return HashPtrTable<IOobject>::sortedToc();
} }
@ -210,7 +202,7 @@ Foam::wordList Foam::IOobjectList::names(const word& ClassName) const
{ {
if (iter()->headerClassName() == ClassName) if (iter()->headerClassName() == ClassName)
{ {
objectNames[count++] = iter()->name(); objectNames[count++] = iter.key();
} }
} }
@ -220,4 +212,13 @@ Foam::wordList Foam::IOobjectList::names(const word& ClassName) const
} }
Foam::wordList Foam::IOobjectList::sortedNames(const word& ClassName) const
{
wordList sortedLst = names(ClassName);
sort(sortedLst);
return sortedLst;
}
// ************************************************************************* // // ************************************************************************* //

View File

@ -84,23 +84,29 @@ public:
// Member functions // Member functions
//- Add an IOobject to list //- Add an IOobject to the list
bool add(IOobject&); bool add(IOobject&);
//- Remove an IOobject from list //- Remove an IOobject from the list
bool remove(IOobject&); bool remove(IOobject&);
//- Lookup a given name and return IOobject ptr if found else NULL //- Lookup a given name and return IOobject ptr if found else NULL
IOobject* lookup(const word& name) const; IOobject* lookup(const word& name) const;
//- Return the list for all IOobjects of given class //- Return the list for all IOobjects of a given class
IOobjectList lookupClass(const word& className) const; IOobjectList lookupClass(const word& className) const;
//- Return the list of names of the IOobjects //- Return the list of names of the IOobjects
wordList names() const; wordList names() const;
//- Return the sorted list of names of the IOobjects
wordList sortedNames() const;
//- Return the list of names of the IOobjects of given class //- Return the list of names of the IOobjects of given class
wordList names(const word& className) const; wordList names(const word& className) const;
//- Return the sorted list of names of the IOobjects of given class
wordList sortedNames(const word& className) const;
}; };