// -*- C++ -*- namespace Hurricane { /*! \class Technology * \brief Technological rules description (\b API). * * \section sTechnologyIntro Introduction * * The Technology object provides the description of all the technology * rules needed by the tools, currently it is limited to the description * of all layers available. This object must be created once within the * DataBase, and, in principle never destroyed (this would destroy layers * and all objects laying on them ...). * * \remark There is only one technology for the current DataBase, and only one * Database object, so only one technology defined. */ /*! \name Constructors */ // \{ /*! \function Technology* Technology::create ( DataBase* dataBase, const Name& name ); * \Return a newly created technology named \c \ for the data base \c \. * * \caution Throws an exception if the \c dataBase is \NULL, if the name is empty or if * the \c dataBase has already a technology. */ // \} /*! \name Accessors */ // \{ /*! \function DataBase* Technology::getDataBase () const; * \Return the DataBase owning the technology. */ /*! \function const Name& Technology::getName () const; * \Return the technology name. */ /*! \function Layer* Technology::getLayer ( const Name& name ) const; * \Return the Layer named \c \ if it exists, else \NULL. */ /*! \function BasicLayer* Technology::getBasicLayer ( const Name& name ) const; * \Return the Layer named \c \ if it exists and is a BasicLayer, else \NULL. */ /*! \function Layers Technology::getLayers () const; * \Return Returns the collection of layers of the technology. * * \remark The layers are traversed according to their * creation order. This order is very important, * notably for the graphical display. Therefore deeper * basic layers must be created first and upper layers * later (the order of composite layers has no * importance). */ /*! \function BasicLayers Technology::getBasicLayers () const; * \Return Returns the collection of basic layers of the technology * (uses the same order). */ /*! \function BasicLayers Technology::getBasicLayers ( const Layer::Mask& mask ) const; * \Return Returns the collection of basic layers of the technology * which matches the Layer mask \c \ (uses the same order). */ // \} /*! \name Modifiers */ // \{ /*! \function void Technology::setName ( const Name& name ); * Allows to change the technology name (if empty name, throws an exception). */ // \} }