SST  6.0.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...
 
Component * CreateComponent (ComponentId_t id, std::string &componentname, Params &params)
 Attempt to create a new Component instantiation. More...
 
Introspector * CreateIntrospector (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...
 
Module * CreateModule (std::string type, Params &params)
 Instatiate a new Module. More...
 
Module * CreateModuleWithComponent (std::string type, Component *comp, Params &params)
 Instatiate a new Module. More...
 
Module * CreateCoreModule (std::string type, Params &params)
 Instantiate a new Module from within the SST core. More...
 
Module * CreateCoreModuleWithComponent (std::string type, Component *comp, Params &params)
 Instantiate a new Module from within the SST core. More...
 
SubComponent * CreateSubComponent (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)
 
StatisticOutput * CreateStatisticOutput (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 Factory * getFactory ()
 

Protected Attributes

Output & out
 

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: