// -*- C++ -*- namespace Hurricane { /*! \class Library * \brief Library description (\b API) * * \section secLibraryIntro Introduction * * A library contains a set of symbols, a set of cells and may * also contains a set of sub libraries. * * A root library exists directly attached to the data_base. * This root library is the only one which has no parent * library. */ /*! \typedef Library::Inherit * Useful for calling upon methods of the base class without * knowing it. */ /*! \name Constructors */ // \{ /*! \function Library* Library::create(DataBase* dataBase, const Name& name); * creates and returns a new root library named \c \ for * the data base \c \. * * \caution Throws an exception if the data base is null, if the name is * empty or if the data base already contains a root library. */ /*! \function Library* Library::create(Library* library, const Name& name); * creates and returns a new sub library named \c \ for * the library \c \. * * \caution Throws an exception if the library is null, if the name is * empty or if a sub library with same name already exists in * the library. */ // \} /*! \name Accessors */ // \{ /*! \function DataBase* Library::getDataBase() const; * \Return the data base owning directly or indirectly the library. */ /*! \function Library* Library::getLibrary() const; * \Return the library owning the library (NULL for the root library). */ /*! \function const Name& Library::getName() const; * \Return the name of the library. */ /*! \function Library* Library::getLibrary(const Name& name) const; * \Return the sub library of name \c \ if it exists, else NULL. */ /*! \function Libraries Library::getLibraries() const; * \Return the collection of all sub libraries of the library. */ /*! \function Cell* Library::getCell(const Name& name) const; * \Return the cell of name \c \ if it exists, else NULL. */ /*! \function Cells Library::getCells() const; * \Return the collection of all cells of the library. */ /* \function Symbol* Library::getSymbol(const Name& name) const; * \Return the symbol of name \c \ if it exists, else NULL. */ /* \function Symbols Library::getSymbols() const; * \Return the collection of all symbols of the library. */ // \} /*! \name Modifiers */ // \{ /*! \function void Library::setName(const Name& name); * Allows to change the library name. * * \remark Throws an exception if the new name is empty or if the * library owning the library (if any) has already a sub library * with the same name. */ // \} /*! \name Library Collection */ // \{ /*! \typedef Libraries * Generic collection representing a set of libraries. */ /*! \typedef LibraryLocator * Generic locator for traversing a collection of libraries. */ /*! \typedef LibraryFilter * Generic filter allowing to select a subset of libraries * matching some criteria. */ /*! \def for_each_library(library, libraries) * Macro for visiting all the libraries of a libraries * collection. */ // \} }