// -*- C++ -*- namespace CRL { /*! \class ToolEngine * \brief Base Class of all Coriolis Tools * * ToolEngine is the base class of all tools for coriolis, * used for Mauka, Knik, Kite, ... * * Provides the basic mechanism for finding a tool and * hooking it through a relation on a Cell. */ /*! \function ToolEngines ToolEngine::get(const Hurricane::Cell* cell); * \Return The Collection of all ToolEngines hooked \c cell. */ /*! \function ToolEngine* ToolEngine::get(const Hurricane::Cell* cell, const Hurricane::Name& name); * \Return The ToolEngine of type \c name hooked \c cell (\c NULL if * not present). */ /*! \function void ToolEngine::destroyAll(); * Destroy all the ToolEngines that have been created. * Should be called only in prelude to database destruction. */ /*! \function const Hurricane::Name& ToolEngine::getName() const; * \Return The name of the ToolEngine. This is pure virtual function * to be overloaded in concrete tools. Each ToolEngine must * return an unique identifier. */ /*! \name ToolEngine Collection */ // \{ /*! \typedef ToolEngines * Generic collection representing a set of ToolEngines. * * To iterate over a Collection of ToolEngines, uses the generaic * \c forEach macro: \code forEach(ToolEngine*, iengine, ToolEngine::get(cell)) { cout << iengine->getName() << endl; // Do someting on the ToolEngine in the iengine iterator. // ... } \endcode */ /*! \typedef ToolEngineLocator * Generic locator for traversing a collection of ToolEngines. */ /*! \typedef ToolEngineFilter * Generic filter allowing to select a subset of ToolEngines matching * some criteria. */ // \} }