Xyce  6.1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Xyce::Device::Config< T > Class Template Reference

Config template derives from the Configuration class and provides the instance and model parameter decriptions. More...

#include <N_DEV_Configuration.h>

Inheritance diagram for Xyce::Device::Config< T >:
Collaboration diagram for Xyce::Device::Config< T >:

Public Types

typedef T ModelTraits
 
typedef ModelGroupTraits_< T,
typename T::ModelGroupTraits >
::GroupTraits_ 
ModelGroupTraits
 
- Public Types inherited from Xyce::Device::Configuration
typedef std::map< NameLevelKey,
Configuration *, NameLevelLess
ConfigurationMap
 

Public Member Functions

Config< T > & registerDevice (const char *device_name, const int level)
 Adds the device into the device registry giving it the specified device name and level. More...
 
Config< T > & registerModelType (const char *model_name, const int level)
 Adds a model type name and level to the device model type list. More...
 
virtual InstanceTypeId instanceType () const
 Returns the instance type identifier. More...
 
virtual ModelTypeId modelType () const
 Returns the model type identifier. More...
 
virtual ModelTypeId modelGroup () const
 Returns the model group identifier. More...
 
Devicefactory (const FactoryBlock &factory_block) const
 Calls the device creation function. More...
 
- Public Member Functions inherited from Xyce::Device::Configuration
virtual ~Configuration ()
 
ParametricData< void > & getInstanceParameters () const
 Returns the instance parameter descriptions. More...
 
ParametricData< void > & getModelParameters () const
 Returns the model parameter descriptions. More...
 
const std::string & getName () const
 Returns the device name. More...
 
const std::string & getDeviceTypeName () const
 Returns the device type name. More...
 
const std::string & getInstanceDefaultParameterName () const
 Returns the instance default parameter name. More...
 
int getNumNodes () const
 Returns the number of nodes of this device. More...
 
int getNumOptionalNodes () const
 Returns the number of optional nodes of this device. More...
 
int getNumFillNodes () const
 Returns the number of fill nodes of this device. More...
 
bool getModelRequired () const
 Returns true of the model must be specified when defining an instance of this device. More...
 
bool getLinearDevice () const
 Returns true of the model is a linear device. More...
 
bool getPDEDevice () const
 Returns true of the model is a PDE device. More...
 
const std::string & getPrimaryParameter () const
 Returns the default primary parameter of this device or the empty string if there is no primary parameter. More...
 
const std::vector< std::string > & getModelTypeNames () const
 Returns a vector of strings that name all the model types defined of this model. More...
 
DevicecreateDevice (const FactoryBlock &factory_block) const
 Creates the specified device. More...
 

Static Public Member Functions

static Config< T > & addConfiguration ()
 Adds the device to the Xyce device configuration. More...
 
- Static Public Member Functions inherited from Xyce::Device::Configuration
static const ConfigurationMapgetConfigurationMap ()
 Returns the configuration map of the system. More...
 
static const ConfigurationfindConfiguration (ModelTypeId model_type_id)
 Returns the configuration associated with the device name and level or 0 if not found. More...
 
static const ConfigurationfindConfiguration (const std::string &device_name, const int level)
 Returns the configuration associated with the device name and level or 0 if not found. More...
 
static ModelTypeId getModelType (const std::string &model_name, const int level)
 Returns the model type identifier for the specified device, if the model type and level is not found, return an invalid type. More...
 
static ModelTypeId getModelGroup (const std::string &device_name)
 Returns the model group of the device name. More...
 

Private Member Functions

 Config ()
 Creates the configuration object, populating the instance and model parameter definitions from the Traits. More...
 
virtual ~Config ()
 Destroys the Config. More...
 
 Config (const Config< T > &)
 No copying. More...
 
Configoperator= (const Config< T > &)
 No assignment. More...
 

Private Attributes

ParametricData< typename
ModelTraits::InstanceType > 
instanceParameters__
 Instance parameter description. More...
 
ParametricData< typename
ModelTraits::ModelType > 
modelParameters__
 Model parameter description. More...
 

Additional Inherited Members

- Protected Member Functions inherited from Xyce::Device::Configuration
 Configuration (ParametricData< void > &instance_parameters, ParametricData< void > &model_parameters, const char *name, const char *device_type_name, const char *instance_default_parameter_name, int num_nodes, int num_optional_nodes, int num_fill_nodes, bool model_required, bool linear_device, bool pde_device, const char *primary_parameter)
 Populates the device configuration object. More...
 
void addDevice (const char *model_name, const int model_level, ModelTypeId model_type_id, ModelTypeId model_group_id, int model_type_nodes, int model_group_nodes)
 Adds the device to the configuration. More...
 
void addModel (const char *model_name, const int level, ModelTypeId model_type_id, ModelTypeId model_group_id)
 Adds a model name for the device to the configuration. More...
 

Detailed Description

template<class T>
class Xyce::Device::Config< T >

Config template derives from the Configuration class and provides the instance and model parameter decriptions.

Definition at line 777 of file N_DEV_Configuration.h.

Member Typedef Documentation

template<class T >
typedef ModelGroupTraits_<T, typename T::ModelGroupTraits>::GroupTraits_ Xyce::Device::Config< T >::ModelGroupTraits

Definition at line 781 of file N_DEV_Configuration.h.

template<class T >
typedef T Xyce::Device::Config< T >::ModelTraits

Definition at line 780 of file N_DEV_Configuration.h.

Constructor & Destructor Documentation

template<class T >
Xyce::Device::Config< T >::Config ( )
inlineprivate

Creates the configuration object, populating the instance and model parameter definitions from the Traits.

The registerDevice() and registerModelType() functions are used by the device registration function to name the device and device levels.

Author
David G. Baur Raytheon Sandia National Laboratories 1355
Date
Mon Jan 27 15:28:59 2014

loadInstanceParameters() is called populate the instance parameter desciptions

loadModelParameters() is called to populate the model parameter desciptions

Definition at line 804 of file N_DEV_Configuration.h.

template<class T >
virtual Xyce::Device::Config< T >::~Config ( )
inlineprivatevirtual

Destroys the Config.

Definition at line 826 of file N_DEV_Configuration.h.

template<class T >
Xyce::Device::Config< T >::Config ( const Config< T > &  )
private

No copying.

Member Function Documentation

template<class T >
static Config<T>& Xyce::Device::Config< T >::addConfiguration ( )
inlinestatic

Adds the device to the Xyce device configuration.

Returns
reference to newly created configuration
Author
David G. Baur Raytheon Sandia National Laboratories 1355
Date
Thu Feb 6 07:15:11 2014

Definition at line 790 of file N_DEV_Configuration.h.

template<class T >
Device* Xyce::Device::Config< T >::factory ( const FactoryBlock factory_block) const
inlinevirtual

Calls the device creation function.

Parameters
factory_blockfactory parameters
Returns
pointer to the new device
Author
David G. Baur Raytheon Sandia National Laboratories 1355
Date
Mon Jan 27 15:35:19 2014

Implements Xyce::Device::Configuration.

Definition at line 958 of file N_DEV_Configuration.h.

template<class T >
virtual InstanceTypeId Xyce::Device::Config< T >::instanceType ( ) const
inlinevirtual

Returns the instance type identifier.

Returns
the instance type identifier
Author
David G. Baur Raytheon Sandia National Laboratories 1355
Date
Wed Feb 5 10:08:52 2014

Implements Xyce::Device::Configuration.

Definition at line 896 of file N_DEV_Configuration.h.

template<class T >
virtual ModelTypeId Xyce::Device::Config< T >::modelGroup ( ) const
inlinevirtual

Returns the model group identifier.

Returns
the model group identifier

Implements Xyce::Device::Configuration.

Definition at line 935 of file N_DEV_Configuration.h.

template<class T >
virtual ModelTypeId Xyce::Device::Config< T >::modelType ( ) const
inlinevirtual

Returns the model type identifier.

Returns
the model type identifier
Author
David G. Baur Raytheon Sandia National Laboratories 1355
Date
Wed Feb 5 10:08:52 2014

Implements Xyce::Device::Configuration.

Definition at line 917 of file N_DEV_Configuration.h.

template<class T >
Config& Xyce::Device::Config< T >::operator= ( const Config< T > &  )
private

No assignment.

template<class T >
Config<T>& Xyce::Device::Config< T >::registerDevice ( const char *  device_name,
const int  level 
)
inline

Adds the device into the device registry giving it the specified device name and level.

Registering a device maps the model type to the device name level key.

Parameters
device_nameconst character pointer name of the device
levellevel of the device

Definition at line 849 of file N_DEV_Configuration.h.

template<class T >
Config<T>& Xyce::Device::Config< T >::registerModelType ( const char *  model_name,
const int  level 
)
inline

Adds a model type name and level to the device model type list.

Parameters
model_nameconst character pointer model name
levelmodel level of the model
Author
David G. Baur Raytheon Sandia National Laboratories 1355
Date
Mon Jan 27 15:32:50 2014

Definition at line 873 of file N_DEV_Configuration.h.

Member Data Documentation

template<class T >
ParametricData<typename ModelTraits::InstanceType> Xyce::Device::Config< T >::instanceParameters__
private

Instance parameter description.

Definition at line 964 of file N_DEV_Configuration.h.

template<class T >
ParametricData<typename ModelTraits::ModelType> Xyce::Device::Config< T >::modelParameters__
private

Model parameter description.

Definition at line 965 of file N_DEV_Configuration.h.


The documentation for this class was generated from the following file: