SST  9.1.0
StructuralSimulationToolkit
SST::SubComponent Class Reference

SubComponent is a class loadable through the factory which allows dynamic functionality to be added to a Component. More...

#include <subcomponent.h>

Inheritance diagram for SST::SubComponent:
SST::Module SST::BaseComponent SST::Interfaces::SimpleMem SST::Interfaces::SimpleNetwork SST::Interfaces::SimpleNetwork::NetworkInspector

Public Member Functions

 SST_ELI_DECLARE_INFO_EXTERN (ELI::ProvidesParams, ELI::ProvidesSubComponentSlots, ELI::ProvidesPorts, ELI::ProvidesStats, ELI::ProvidesInterface) SubComponent(Component *parent)
 
 SubComponent (ComponentId_t id)
 
virtual void init (unsigned int UNUSED(phase)) override
 Used during the init phase. More...
 
virtual void setup () override
 Called after all components have been constructed and initialization has completed, but before simulation time has begun. More...
 
virtual void finish () override
 Called after simulation completes, but before objects are destroyed. More...
 
- Public Member Functions inherited from SST::Module
 SST_ELI_DECLARE_CTORS (ELI_CTOR(SST::Params &),) Module()
 
- Public Member Functions inherited from SST::BaseComponent
 BaseComponent (ComponentId_t id)
 
BaseComponentgetParent () const
 Returns a pointer to the parent BaseComponent.
 
const std::string & getType () const
 
ComponentId_t getId () const
 Returns unique component ID.
 
virtual void emergencyShutdown (void)
 Called when SIGINT or SIGTERM has been seen. More...
 
const std::string & getName () const
 Returns component Name.
 
virtual void complete (unsigned int UNUSED(phase))
 Used during the init phase. More...
 
virtual bool Status ()
 Currently unused function.
 
virtual void printStatus (Output &UNUSED(out))
 Called by the Simulation to request that the component print it's current status. More...
 
bool isPortConnected (const std::string &name) const
 Determine if a port name is connected to any links.
 
LinkconfigureLink (std::string name, TimeConverter *time_base, Event::HandlerBase *handler=NULL)
 Configure a Link. More...
 
LinkconfigureLink (std::string name, std::string time_base, Event::HandlerBase *handler=NULL)
 Configure a Link. More...
 
LinkconfigureLink (std::string name, Event::HandlerBase *handler=NULL)
 Configure a Link. More...
 
LinkconfigureSelfLink (std::string name, TimeConverter *time_base, Event::HandlerBase *handler=NULL)
 Configure a SelfLink (Loopback link) More...
 
LinkconfigureSelfLink (std::string name, std::string time_base, Event::HandlerBase *handler=NULL)
 Configure a SelfLink (Loopback link) More...
 
LinkconfigureSelfLink (std::string name, Event::HandlerBase *handler=NULL)
 Configure a SelfLink (Loopback link) More...
 
TimeConverterregisterClock (std::string freq, Clock::HandlerBase *handler, bool regAll=true)
 Registers a clock for this component. More...
 
TimeConverterregisterClock (const UnitAlgebra &freq, Clock::HandlerBase *handler, bool regAll=true)
 
void unregisterClock (TimeConverter *tc, Clock::HandlerBase *handler)
 Removes a clock handler from the component.
 
Cycle_t reregisterClock (TimeConverter *freq, Clock::HandlerBase *handler)
 Reactivates an existing Clock and Handler. More...
 
Cycle_t getNextClockCycle (TimeConverter *freq)
 Returns the next Cycle that the TimeConverter would fire.
 
TimeConverterregisterOneShot (std::string timeDelay, OneShot::HandlerBase *handler)
 Registers a OneShot event for this component. More...
 
TimeConverterregisterOneShot (const UnitAlgebra &timeDelay, OneShot::HandlerBase *handler)
 
TimeConverterregisterTimeBase (std::string base, bool regAll=true)
 Registers a default time base for the component and optionally sets the the component's links to that timebase. More...
 
TimeConvertergetTimeConverter (const std::string &base)
 
TimeConvertergetTimeConverter (const UnitAlgebra &base)
 
SimTime_t getCurrentSimTime (TimeConverter *tc) const
 return the time since the simulation began in units specified by the parameter. More...
 
SimTime_t getCurrentSimTime () const
 return the time since the simulation began in the default timebase
 
SimTime_t getCurrentSimTime (std::string base)
 return the time since the simulation began in timebase specified More...
 
SimTime_t getCurrentSimTimeNano () const
 Utility function to return the time since the simulation began in nanoseconds.
 
SimTime_t getCurrentSimTimeMicro () const
 Utility function to return the time since the simulation began in microseconds.
 
SimTime_t getCurrentSimTimeMilli () const
 Utility function to return the time since the simulation began in milliseconds.
 
bool isStatisticShared (const std::string &statName, bool include_me=false)
 
template<typename T >
Statistic< T > * registerStatistic (SST::Params &params, const std::string &statName, const std::string &statSubId="")
 Registers a statistic. More...
 
template<typename T >
Statistic< T > * registerStatistic (const std::string &statName, const std::string &statSubId="")
 
template<typename... Args>
Statistic< std::tuple< Args...> > * registerMultiStatistic (const std::string &statName, const std::string &statSubId="")
 
template<typename... Args>
Statistic< std::tuple< Args...> > * registerMultiStatistic (SST::Params &params, const std::string &statName, const std::string &statSubId="")
 
template<typename T >
Statistic< T > * registerStatistic (const char *statName, const char *statSubId="")
 
ModuleloadModule (std::string type, Params &params)
 Loads a module from an element Library. More...
 
ModuleloadModuleWithComponent (std::string type, Component *comp, Params &params)
 Loads a module from an element Library. More...
 
template<class T , class... ARGS>
T * loadModule (std::string type, Params &params, ARGS...args)
 Loads a module from an element Library. More...
 
SubComponentloadSubComponent (std::string type, Component *comp, Params &params)
 Loads a SubComponent from an element Library. More...
 
SubComponentloadNamedSubComponent (std::string name)
 
SubComponentloadNamedSubComponent (std::string name, Params &params)
 
SubComponentSlotInfogetSubComponentSlotInfo (std::string name, bool fatalOnEmptyIndex=false)
 
const std::vector< double > & getCoordinates () const
 Retrieve the X,Y,Z coordinates of this component.
 
bool wasLoadedWithLegacyAPI () const
 Temporary function to help provide backward compatibility to old SubComponent API. More...
 

Protected Member Functions

SubComponentloadSubComponent (std::string type, Params &params)
 
- Protected Member Functions inherited from SST::BaseComponent
template<class T , class... ARGS>
T * loadComponentExtension (ARGS...args)
 
template<class T >
bool isSubComponentLoadableUsingAPI (std::string type)
 Check to see if a given element type is loadable with a particular API. More...
 
template<class T , class... ARGS>
T * loadAnonymousSubComponent (std::string type, std::string slot_name, int slot_num, uint64_t share_flags, Params &params, ARGS...args)
 Loads an anonymous subcomponent (not defined in input file to SST run). More...
 
template<class T >
T * loadUserSubComponent (std::string slot_name)
 Loads a user defined subcomponent (defined in input file to SST run). More...
 
template<class T , class... ARGS>
T * loadUserSubComponent (std::string slot_name, uint64_t share_flags, ARGS...args)
 Loads a user defined subcomponent (defined in input file to SST run). More...
 
bool isAnonymous ()
 
bool isUser ()
 
void setDefaultTimeBase (TimeConverter *tc)
 Manually set the default detaulTimeBase.
 
TimeConvertergetDefaultTimeBase ()
 
bool doesSubComponentExist (std::string type)
 
SharedRegiongetLocalSharedRegion (const std::string &key, size_t size)
 Find a lookup table.
 
SharedRegiongetGlobalSharedRegion (const std::string &key, size_t size, SharedRegionMerger *merger=NULL)
 
SimulationgetSimulation () const
 
virtual bool doesComponentInfoStatisticExist (const std::string &statisticName) const
 
uint8_t getComponentInfoStatisticEnableLevel (const std::string &statisticName) const
 
ComponentgetTrueComponent () const
 

Protected Attributes

Component *const parent
 
- Protected Attributes inherited from SST::BaseComponent
Simulationsim
 

Friends

class Component
 

Detailed Description

SubComponent is a class loadable through the factory which allows dynamic functionality to be added to a Component.

The SubComponent API is nearly identical to the Component API and all the calls are proxied to the parent Component.

Member Function Documentation

virtual void SST::SubComponent::finish ( )
inlineoverridevirtual

Called after simulation completes, but before objects are destroyed.

A good place to print out statistics.

Reimplemented from SST::BaseComponent.

Reimplemented in SST::Interfaces::SimpleNetwork.

virtual void SST::SubComponent::init ( unsigned int   UNUSEDphase)
inlineoverridevirtual

Used during the init phase.

The method will be called each phase of initialization. Initialization ends when no components have sent any data.

Reimplemented from SST::BaseComponent.

Reimplemented in SST::Interfaces::SimpleNetwork.

virtual void SST::SubComponent::setup ( )
inlineoverridevirtual

Called after all components have been constructed and initialization has completed, but before simulation time has begun.

Reimplemented from SST::BaseComponent.

Reimplemented in SST::Interfaces::SimpleNetwork.


The documentation for this class was generated from the following files: