SST
7.0.0
StructuralSimulationToolkit
|
Class for instantiating Components, Links and the like out of element libraries. More...
#include <factory.h>
Public Member Functions | |
bool | isPortNameValid (const std::string &type, const std::string port_name) |
Get a list of allowed ports for a given component type. More... | |
Component * | CreateComponent (ComponentId_t id, std::string &componentname, Params ¶ms) |
Attempt to create a new Component 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 ¶ms) |
Instatiate a new Module. More... | |
Module * | CreateModuleWithComponent (std::string type, Component *comp, Params ¶ms) |
Instatiate a new Module. More... | |
Module * | CreateCoreModule (std::string type, Params ¶ms) |
Instantiate a new Module from within the SST core. More... | |
Module * | CreateCoreModuleWithComponent (std::string type, Component *comp, Params ¶ms) |
Instantiate a new Module from within the SST core. More... | |
SubComponent * | CreateSubComponent (std::string type, Component *comp, Params ¶ms) |
Instatiate a new Module. More... | |
Partition::SSTPartitioner * | CreatePartitioner (std::string name, RankInfo total_ranks, RankInfo my_rank, int verbosity) |
Return partitioner function. More... | |
generateFunction | GetGenerator (std::string name) |
Return generator function. More... | |
Statistics::StatisticBase * | CreateStatistic (BaseComponent *comp, const std::string &type, const std::string &statName, const std::string &statSubId, Params ¶ms, Statistics::StatisticFieldInfo::fieldType_t fieldType) |
Instatiate a new Statistic. More... | |
SSTElementPythonModule * | getPythonModule (std::string name) |
Return Python Module creation function. 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) |
Statistics::StatisticOutput * | CreateStatisticOutput (const std::string &statOutputType, const Params &statOutputParams) |
Attempt to create a new Statistic Output instantiation. More... | |
bool | DoesSubComponentSlotExist (const std::string &type, const std::string &slotName) |
Determine if a SubComponentSlot is defined in a components ElementInfoStatistic. 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 |
Class for instantiating Components, Links and the like out of element libraries.
Component * SST::Factory::CreateComponent | ( | ComponentId_t | id, |
std::string & | componentname, | ||
Params & | params | ||
) |
Attempt to create a new Component instantiation.
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 |
References SST::Output::fatal(), SST::Simulation::getComponentLinkMap(), SST::Simulation::getSimulation(), SST::Params::popAllowedKeys(), SST::Params::pushAllowedKeys(), and SST::LinkMap::setAllowedPorts().
Instantiate a new Module from within the SST core.
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.
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().
Instatiate a new Module.
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.
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().
Partition::SSTPartitioner * SST::Factory::CreatePartitioner | ( | std::string | name, |
RankInfo | total_ranks, | ||
RankInfo | my_rank, | ||
int | verbosity | ||
) |
Return partitioner function.
name | - Fully qualified elementlibname.partitioner type name |
References SST::Output::fatal(), and SST::ElementInfoPartitioner::func.
StatisticBase * SST::Factory::CreateStatistic | ( | BaseComponent * | comp, |
const std::string & | type, | ||
const std::string & | statName, | ||
const std::string & | statSubId, | ||
Params & | params, | ||
Statistics::StatisticFieldInfo::fieldType_t | fieldType | ||
) |
Instatiate a new Statistic.
comp | - Owning component |
type | - Fully qualified elementlibname.statisticname type |
statName | - Name of the statistic |
statSubId | - Name of the sub statistic |
params | - Parameters to pass to the Statistics's constructor |
fieldType | - Type of data stored in statistic |
References SST::Output::fatal().
StatisticOutput * SST::Factory::CreateStatisticOutput | ( | const std::string & | statOutputType, |
const Params & | statOutputParams | ||
) |
Attempt to create a new Statistic Output instantiation.
statOutputType | - The name of the Statistic Output to create (Module Name) |
statOutputParams | - The params to pass to the statistic output's constructor |
References CreateModule().
SubComponent * SST::Factory::CreateSubComponent | ( | std::string | type, |
Component * | comp, | ||
Params & | params | ||
) |
Instatiate a new Module.
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.
type | - The name of the component |
statisticName | - The name of the statistic |
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.
type | - The name of the subcomponent |
statisticName | - The name of the statistic |
References SST::Output::fatal().
bool SST::Factory::DoesSubComponentSlotExist | ( | const std::string & | type, |
const std::string & | slotName | ||
) |
Determine if a SubComponentSlot is defined in a components ElementInfoStatistic.
type | - The name of the component/subcomponent |
slotName | - The name of the SubComponentSlot |
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.
componentname | - The name of the component |
statisticName | - The name of the statistic |
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.
componentname | - The name of the component |
statisticName | - The name of the statistic |
References SST::Output::fatal().
generateFunction SST::Factory::GetGenerator | ( | std::string | name | ) |
Return generator function.
name | - Fully qualified elementlibname.generator type name |
References SST::Output::fatal(), and SST::ElementInfoGenerator::func.
SSTElementPythonModule * SST::Factory::getPythonModule | ( | std::string | name | ) |
Return Python Module creation function.
name | - Fully qualified elementlibname.pythonModName type name |
References SST::ElementLibraryInfo::pythonModuleGenerator.
bool SST::Factory::isPortNameValid | ( | const std::string & | type, |
const std::string | port_name | ||
) |
Get a list of allowed ports for a given component type.
type | - Name of component in lib.name format |
References SST::Output::fatal().
void SST::Factory::RequireEvent | ( | std::string | eventname | ) |
Ensure that an element library containing the required event is loaded.
eventname | - The fully qualified elementlibname.eventname type |
References SST::Output::fatal().
Referenced by SST::Simulation::requireEvent().