SST 12.1.0
Structural Simulation Toolkit
|
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 T , class... ARGS> | |
T * | CreateProfileTool (const std::string &type, ARGS... args) |
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... | |
bool | isProfilePointValid (const std::string &type, const std::string &point) |
Get a list of allowed ports for a given component type. 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::BaseComponent::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::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::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 |
|
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 |
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 |
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 |
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 |
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 |
bool SST::Factory::isProfilePointValid | ( | const std::string & | type, |
const std::string & | point | ||
) |
Get a list of allowed ports for a given component type.
type | - Type of component in lib.name format |
point | = Profile point to check |
|
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 |