SST
11.1.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... | |
const Params::KeySet_t & | getParamNames (const std::string &type) |
Get a list of allowed param keys for a given component type. More... | |
Component * | CreateComponent (ComponentId_t id, const std::string &componentname, Params ¶ms) |
Attempt to create a new Component instantiation. More... | |
void | RequireEvent (const std::string &eventname) |
Ensure that an element library containing the required event is loaded. More... | |
Module * | CreateModule (const std::string &type, Params ¶ms) |
Instantiate a new Module. More... | |
Module * | CreateModuleWithComponent (const std::string &type, Component *comp, Params ¶ms) |
Instantiate a new Module. More... | |
bool | doesSubComponentExist (const std::string &type) |
Partition::SSTPartitioner * | CreatePartitioner (const std::string &name, RankInfo total_ranks, RankInfo my_rank, int verbosity) |
Return partitioner function. More... | |
template<class Base > | |
bool | isSubComponentLoadableUsingAPI (const std::string &type) |
Check to see if a given element type is loadable with a particular API. More... | |
template<class Base , int index, class InfoType > | |
const InfoType & | getSimpleInfo (const std::string &type) |
template<class Base , class... CtorArgs> | |
Base * | Create (const std::string &type, CtorArgs &&...args) |
General function to create a given base class. More... | |
template<class Base , class... CtorArgs> | |
Base * | CreateWithParams (const std::string &type, SST::Params ¶ms, CtorArgs &&...args) |
General function to create a given base class. More... | |
template<class T , class... Args> | |
Statistics::Statistic< T > * | CreateStatistic (const std::string &type, BaseComponent *comp, const std::string &statName, const std::string &stat, Params ¶ms, Args...args) |
Instantiate a new Statistic. More... | |
SSTElementPythonModule * | getPythonModule (const std::string &name) |
Return Python Module creation function. More... | |
bool | hasLibrary (const std::string &elemlib, std::ostream &err_os) |
hasLibrary Checks to see if library exists and can be loaded More... | |
void | requireLibrary (const std::string &elemlib, std::ostream &err_os) |
void | requireLibrary (const std::string &elemlib) |
requireLibrary Throws away error messages More... | |
void | getLoadedLibraryNames (std::set< std::string > &lib_names) |
void | loadUnloadedLibraries (const std::set< std::string > &lib_names) |
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... | |
const std::vector< std::string > & | GetValidStatistics (const std::string &compType) |
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.
|
inline |
General function to create a given base class.
type | |
params | |
args | Constructor arguments |
Component * SST::Factory::CreateComponent | ( | ComponentId_t | id, |
const 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::Params::popAllowedKeys(), and SST::Params::pushAllowedKeys().
Instantiate a new Module.
type | - Fully qualified elementlibname.modulename type |
params | - Parameters to pass to the Module's constructor |
References SST::Output::fatal(), SST::Simulation::getSimulation(), SST::Simulation::getSimulationOutput(), SST::Params::popAllowedKeys(), and SST::Params::pushAllowedKeys().
Module * SST::Factory::CreateModuleWithComponent | ( | const std::string & | type, |
Component * | comp, | ||
Params & | params | ||
) |
Instantiate 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 SST::Output::fatal(), SST::Params::popAllowedKeys(), and SST::Params::pushAllowedKeys().
Partition::SSTPartitioner * SST::Factory::CreatePartitioner | ( | const 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().
|
inline |
Instantiate 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().
|
inline |
General function to create a given base class.
This version should be used if a Params object is being passed in and you need the system to populate the allowed keys for the object. If you don't need the allowed keys to be populated, just use the Create() bunction.
type | |
params | |
args | Constructor arguments |
References 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 |
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().
const Params::KeySet_t & SST::Factory::getParamNames | ( | const std::string & | type | ) |
Get a list of allowed param keys for a given component type.
type | - Name of component in lib.name format |
References SST::Output::fatal().
SSTElementPythonModule * SST::Factory::getPythonModule | ( | const std::string & | name | ) |
Return Python Module creation function.
name | - Fully qualified elementlibname.pythonModName type name |
bool SST::Factory::hasLibrary | ( | const std::string & | elemlib, |
std::ostream & | err_os | ||
) |
hasLibrary Checks to see if library exists and can be loaded
elemlib | |
err_os | Stream to print error messages to |
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().
|
inline |
Check to see if a given element type is loadable with a particular API.
name | - Name of element to check in lib.name format |
void SST::Factory::RequireEvent | ( | const std::string & | eventname | ) |
Ensure that an element library containing the required event is loaded.
eventname | - The fully qualified elementlibname.eventname type |
Referenced by SST::Simulation_impl::requireEvent().
void SST::Factory::requireLibrary | ( | const std::string & | elemlib | ) |
requireLibrary Throws away error messages
elemlib |