// -*- C++ -*-

namespace OpenChams {
/*! \class Transistor
 *
 *  This class describes a Transistor.
 *
 *  The transistor object is used to describe the inside of a Device. The goal is to explicit the connection between the transistor and the device's nets. 
 */

/*! \fn Transistor::Transistor(Name name, Instance* instance)
 *   \brief creates a new transistor.
 *
 *   \param name     the name of the transistor.
 *   \param instance the instance (device) to which the transistor belongs.
 */

/*! \fn inline void Transistor::addParameter(Name name, double value)
 *   \brief adds a parameter to the instance.
 *
 *   \param name  the name of the parameter.
 *   \param value the value of the parameter.
 */

/*! \fn inline void Transistor::addParameter(Name name, std::string equation)
 *   \brief adds an equation parameter to the instance.
 *
 *   \param name     the name of the parameter.
 *   \param equation the equation string of the parameter.
 */

/*! \fn inline Parameters Transistor::getParameters()
 *   \brief returns the parameters of the instance.
 */

/*! \fn inline Name Transistor::getName()
 *   \brief returns the name of the transistor.
 */

/*! \fn inline Name Transistor::getGate()
 *   \brief returns the name of the net connected to the transistor's gate.
 */

/*! \fn inline Name Transistor::getSource()
 *   \brief returns the name of the net connected to the transistor's source.
 */

/*! \fn inline Name Transistor::getDrain()
 *   \brief returns the name of the net connected to the transistor's drain.
 */

/*! \fn inline Name Transistor::getBulk()
 *   \brief returns the name of the net connected to the transistor's bulk.
 */

/*! \fn inline void Transistor::setName(Name name)
 *   \brief sets the transistor's name.
 *
 *   \param name the name of the transistor.
 */

/*! \fn void Transistor::setGate  (Name name)
 *   \brief sets the net of the transistor's gate.
 *
 *   \param name the name of the net to connect to the gate.
 */

/*! \fn void Transistor::setSource(Name name)
 *   \brief sets the net of the transistor's source.
 *
 *   \param name the name of the net to connect to the source.
 */

/*! \fn void Transistor::setDrain (Name name)
 *   \brief sets the net of the transistor's drain.
 *
 *   \param name the name of the net to connect to the drain.
 */

/*! \fn void Transistor::setBulk  (Name name)
 *   \brief sets the net of the transistor's bulk.
 *
 *   \param name the name of the net to connect to the bulk.
 */
}
