SST::Factory Class Reference

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

#include <factory.h>

Data Structures

struct  ComponentInfo
struct  IntrospectorInfo
struct  ModuleInfo
struct  SubComponentInfo

Public Member Functions

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

Protected Attributes

Outputout

Friends

class SST::SimulationBase
class boost::serialization::access
template<class Archive >
void save_construct_data (Archive &ar, const Factory *t, const unsigned int file_version)
template<class Archive >
void load_construct_data (Archive &ar, Factory *t, const unsigned int file_version)

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(), and SST::Component::loadModule().

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().

Referenced by SST::Component::loadModuleWithComponent().

StatisticOutput * SST::Factory::CreateStatisticOutput ( std::string &  statOutputType,
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().

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

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().

Referenced by SST::Component::loadSubComponent().

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().

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

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:

Generated on 14 Sep 2015 for SST by  doxygen 1.6.1