SST
9.1.0
StructuralSimulationToolkit
|
ComponentExtension is a class that can be loaded using loadComponentExtension<T>(...). More...
#include <componentExtension.h>
Public Member Functions | |
ComponentExtension (ComponentId_t id) | |
Public Member Functions inherited from SST::BaseComponent | |
BaseComponent (ComponentId_t id) | |
BaseComponent * | getParent () 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 | init (unsigned int UNUSED(phase)) |
Used during the init phase. More... | |
virtual void | complete (unsigned int UNUSED(phase)) |
Used during the init phase. More... | |
virtual void | setup () |
Called after all components have been constructed and initialization has completed, but before simulation time has begun. More... | |
virtual void | finish () |
Called after simulation completes, but before objects are destroyed. 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. | |
Link * | configureLink (std::string name, TimeConverter *time_base, Event::HandlerBase *handler=NULL) |
Configure a Link. More... | |
Link * | configureLink (std::string name, std::string time_base, Event::HandlerBase *handler=NULL) |
Configure a Link. More... | |
Link * | configureLink (std::string name, Event::HandlerBase *handler=NULL) |
Configure a Link. More... | |
Link * | configureSelfLink (std::string name, TimeConverter *time_base, Event::HandlerBase *handler=NULL) |
Configure a SelfLink (Loopback link) More... | |
Link * | configureSelfLink (std::string name, std::string time_base, Event::HandlerBase *handler=NULL) |
Configure a SelfLink (Loopback link) More... | |
Link * | configureSelfLink (std::string name, Event::HandlerBase *handler=NULL) |
Configure a SelfLink (Loopback link) More... | |
TimeConverter * | registerClock (std::string freq, Clock::HandlerBase *handler, bool regAll=true) |
Registers a clock for this component. More... | |
TimeConverter * | registerClock (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. | |
TimeConverter * | registerOneShot (std::string timeDelay, OneShot::HandlerBase *handler) |
Registers a OneShot event for this component. More... | |
TimeConverter * | registerOneShot (const UnitAlgebra &timeDelay, OneShot::HandlerBase *handler) |
TimeConverter * | registerTimeBase (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... | |
TimeConverter * | getTimeConverter (const std::string &base) |
TimeConverter * | getTimeConverter (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 ¶ms, 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 ¶ms, const std::string &statName, const std::string &statSubId="") |
template<typename T > | |
Statistic< T > * | registerStatistic (const char *statName, const char *statSubId="") |
Module * | loadModule (std::string type, Params ¶ms) |
Loads a module from an element Library. More... | |
Module * | loadModuleWithComponent (std::string type, Component *comp, Params ¶ms) |
Loads a module from an element Library. More... | |
template<class T , class... ARGS> | |
T * | loadModule (std::string type, Params ¶ms, ARGS...args) |
Loads a module from an element Library. More... | |
SubComponent * | loadSubComponent (std::string type, Component *comp, Params ¶ms) |
Loads a SubComponent from an element Library. More... | |
SubComponent * | loadNamedSubComponent (std::string name) |
SubComponent * | loadNamedSubComponent (std::string name, Params ¶ms) |
SubComponentSlotInfo * | getSubComponentSlotInfo (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... | |
Additional Inherited Members | |
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 ¶ms, 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. | |
TimeConverter * | getDefaultTimeBase () |
bool | doesSubComponentExist (std::string type) |
SharedRegion * | getLocalSharedRegion (const std::string &key, size_t size) |
Find a lookup table. | |
SharedRegion * | getGlobalSharedRegion (const std::string &key, size_t size, SharedRegionMerger *merger=NULL) |
Simulation * | getSimulation () const |
virtual bool | doesComponentInfoStatisticExist (const std::string &statisticName) const |
uint8_t | getComponentInfoStatisticEnableLevel (const std::string &statisticName) const |
Component * | getTrueComponent () const |
Protected Attributes inherited from SST::BaseComponent | |
Simulation * | sim |
ComponentExtension is a class that can be loaded using loadComponentExtension<T>(...).
All the calls to the BaseComponent APIU will act like they are happening in the nearest SubConmponent or Component parent. Hierarchy will not be kept in the case were a ComponentExtension is loaded into a ComponentExtension; they will both act like they are in the parent.