SST  6.1.0
StructuralSimulationToolkit
SST::Factory Class Reference

Class for instantiating Components, Links and the like out of element libraries. More...

#include <factory.h>

Public Member Functions

const std::vector< std::string > * GetComponentAllowedPorts (std::string type)
 Get a list of allowed ports for a given component type. More...
 
ComponentCreateComponent (ComponentId_t id, std::string &componentname, Params &params)
 Attempt to create a new Component instantiation. More...
 
IntrospectorCreateIntrospector (std::string &introspectorname, Params &params)
 Attempt to create a new Introspector instantiation. More...
 
void RequireEvent (std::string eventname)
 Ensure that an element library containing the required event is loaded. More...
 
ModuleCreateModule (std::string type, Params &params)
 Instatiate a new Module. More...
 
ModuleCreateModuleWithComponent (std::string type, Component *comp, Params &params)
 Instatiate a new Module. More...
 
ModuleCreateCoreModule (std::string type, Params &params)
 Instantiate a new Module from within the SST core. More...
 
ModuleCreateCoreModuleWithComponent (std::string type, Component *comp, Params &params)
 Instantiate a new Module from within the SST core. More...
 
SubComponentCreateSubComponent (std::string type, Component *comp, Params &params)
 Instatiate a new Module. More...
 
partitionFunction GetPartitioner (std::string name)
 Return partitioner function. More...
 
generateFunction GetGenerator (std::string name)
 Return generator function. More...
 
genPythonModuleFunction getPythonModule (std::string name)
 Instatiate a new StatisticBase Object. More...
 
bool hasLibrary (std::string elemlib)
 Checks to see if library exists and can be loaded.
 
void requireLibrary (std::string &elemlib)
 
void getLoadedLibraryNames (std::set< std::string > &lib_names)
 
void loadUnloadedLibraries (const std::set< std::string > &lib_names)
 
StatisticOutputCreateStatisticOutput (const std::string &statOutputType, const Params &statOutputParams)
 Attempt to create a new Statistic Output instantiation. More...
 
bool DoesComponentInfoStatisticNameExist (const std::string &type, const std::string &statisticName)
 Determine if a statistic is defined in a components ElementInfoStatistic. More...
 
bool DoesSubComponentInfoStatisticNameExist (const std::string &type, const std::string &statisticName)
 Determine if a statistic is defined in a subcomponents ElementInfoStatistic. More...
 
uint8_t GetComponentInfoStatisticEnableLevel (const std::string &type, const std::string &statisticName)
 Get the enable level of a statistic defined in the component's ElementInfoStatistic. More...
 
std::string GetComponentInfoStatisticUnits (const std::string &type, const std::string &statisticName)
 Get the units of a statistic defined in the component's ElementInfoStatistic. More...
 

Static Public Member Functions

static FactorygetFactory ()
 

Protected Attributes

Outputout
 

Detailed Description

Class for instantiating Components, Links and the like out of element libraries.

Member Function Documentation

Component * SST::Factory::CreateComponent ( ComponentId_t  id,
std::string &  componentname,
Params params 
)

Attempt to create a new Component instantiation.

Parameters
id- The unique ID of the component instantiation
componentname- The fully qualified elementlibname.componentname type of component
params- The params to pass to the component's constructor
Returns
Newly created component

References SST::Output::fatal(), SST::Simulation::getComponentLinkMap(), SST::Simulation::getSimulation(), SST::Params::popAllowedKeys(), SST::Params::pushAllowedKeys(), and SST::LinkMap::setAllowedPorts().

Module * SST::Factory::CreateCoreModule ( std::string  type,
Params params 
)

Instantiate a new Module from within the SST core.

Parameters
type- Name of the module to load (just modulename, not element.modulename)
params- Parameters to pass to the module at constructor time

References SST::Output::fatal().

Referenced by CreateModule().

Module * SST::Factory::CreateCoreModuleWithComponent ( std::string  type,
Component comp,
Params params 
)

Instantiate a new Module from within the SST core.

Parameters
type- Name of the module to load (just modulename, not element.modulename)
params- Parameters to pass to the module at constructor time

References SST::Output::fatal().

Referenced by CreateModuleWithComponent().

Introspector * SST::Factory::CreateIntrospector ( std::string &  introspectorname,
Params params 
)

Attempt to create a new Introspector instantiation.

Parameters
introspectorname- The fully qualified elementlibname.introspectorname type of introspector
params- The params to pass to the introspectors's constructor
Returns
Newly created introspector

References SST::Output::fatal(), SST::Params::popAllowedKeys(), and SST::Params::pushAllowedKeys().

Module * SST::Factory::CreateModule ( std::string  type,
Params params 
)

Instatiate a new Module.

Parameters
type- Fully qualified elementlibname.modulename type
params- Parameters to pass to the Module's constructor

References CreateCoreModule(), SST::Output::fatal(), SST::Simulation::getSimulation(), SST::Simulation::getSimulationOutput(), SST::Params::popAllowedKeys(), and SST::Params::pushAllowedKeys().

Referenced by CreateStatisticOutput().

Module * SST::Factory::CreateModuleWithComponent ( std::string  type,
Component comp,
Params params 
)

Instatiate a new Module.

Parameters
type- Fully qualified elementlibname.modulename type
comp- Component instance to pass to the Module's constructor
params- Parameters to pass to the Module's constructor

References CreateCoreModuleWithComponent(), SST::Output::fatal(), SST::Params::popAllowedKeys(), and SST::Params::pushAllowedKeys().

StatisticOutput * SST::Factory::CreateStatisticOutput ( const std::string &  statOutputType,
const Params statOutputParams 
)

Attempt to create a new Statistic Output instantiation.

Parameters
statOutputType- The name of the Statistic Output to create (Module Name)
statOutputParams- The params to pass to the statistic output's constructor
Returns
Newly created Statistic Output

References CreateModule().

SubComponent * SST::Factory::CreateSubComponent ( std::string  type,
Component comp,
Params params 
)

Instatiate a new Module.

Parameters
type- Fully qualified elementlibname.modulename type
comp- Component instance to pass to the SubComponent's constructor
params- Parameters to pass to the SubComponent's constructor

References SST::Output::fatal(), SST::Params::popAllowedKeys(), and SST::Params::pushAllowedKeys().

bool SST::Factory::DoesComponentInfoStatisticNameExist ( const std::string &  type,
const std::string &  statisticName 
)

Determine if a statistic is defined in a components ElementInfoStatistic.

Parameters
type- The name of the component
statisticName- The name of the statistic
Returns
True if the statistic is defined in the component's ElementInfoStatistic

References SST::Output::fatal().

bool SST::Factory::DoesSubComponentInfoStatisticNameExist ( const std::string &  type,
const std::string &  statisticName 
)

Determine if a statistic is defined in a subcomponents ElementInfoStatistic.

Parameters
type- The name of the subcomponent
statisticName- The name of the statistic
Returns
True if the statistic is defined in the component's ElementInfoStatistic

References SST::Output::fatal().

const std::vector< std::string > * SST::Factory::GetComponentAllowedPorts ( std::string  type)

Get a list of allowed ports for a given component type.

Parameters
type- Name of component in lib.name format
Returns
Vector of allowed port names

References SST::Output::fatal().

uint8_t SST::Factory::GetComponentInfoStatisticEnableLevel ( const std::string &  type,
const std::string &  statisticName 
)

Get the enable level of a statistic defined in the component's ElementInfoStatistic.

Parameters
componentname- The name of the component
statisticName- The name of the statistic
Returns
The Enable Level of the statistic from the ElementInfoStatistic

References SST::Output::fatal().

std::string SST::Factory::GetComponentInfoStatisticUnits ( const std::string &  type,
const std::string &  statisticName 
)

Get the units of a statistic defined in the component's ElementInfoStatistic.

Parameters
componentname- The name of the component
statisticName- The name of the statistic
Returns
The units string of the statistic from the ElementInfoStatistic

References SST::Output::fatal().

generateFunction SST::Factory::GetGenerator ( std::string  name)

Return generator function.

Parameters
name- Fully qualified elementlibname.generator type name

References SST::Output::fatal(), and SST::ElementInfoGenerator::func.

partitionFunction SST::Factory::GetPartitioner ( std::string  name)

Return partitioner function.

Parameters
name- Fully qualified elementlibname.partitioner type name

References SST::Output::fatal(), and SST::ElementInfoPartitioner::func.

genPythonModuleFunction SST::Factory::getPythonModule ( std::string  name)

Instatiate a new StatisticBase Object.

Parameters
type- Fully qualified elementlibname.statisticname type
params- Parameters to pass to the Statistics's constructor Instatiate a new Statistic
type- Fully qualified elementlibname.statisticname type
params- Parameters to pass to the Statistics's constructor Return Python Module creation function
name- Fully qualified elementlibname.pythonModName type name

References SST::ElementLibraryInfo::pythonModuleGenerator.

void SST::Factory::RequireEvent ( std::string  eventname)

Ensure that an element library containing the required event is loaded.

Parameters
eventname- The fully qualified elementlibname.eventname type

References SST::Output::fatal().

Referenced by SST::Simulation::requireEvent().


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