| SST 15.0
    Structural Simulation Toolkit | 
SubComponent is a class loadable through the factory which allows dynamic functionality to be added to a Component. More...
#include <subcomponent.h>
 
  
| Public Member Functions | |
| SST_ELI_DECLARE_INFO_EXTERN (ELI::ProvidesInterface, ELI::ProvidesParams, ELI::ProvidesPorts, ELI::ProvidesSubComponentSlots, ELI::ProvidesStats, ELI::ProvidesProfilePoints, ELI::ProvidesAttributes) explicit SubComponent(ComponentId_t id) | |
| virtual void | init (unsigned int UNUSED(phase)) override | 
| Used during the init phase. | |
| virtual void | setup () override | 
| Called after all components have been constructed and initialization has completed, but before simulation time has begun. | |
| virtual void | finish () override | 
| Called after simulation completes, but before objects are destroyed. | |
|  Public Member Functions inherited from SST::BaseComponent | |
| BaseComponent (ComponentId_t id) | |
| BaseComponent (const BaseComponent &)=delete | |
| BaseComponent & | operator= (const BaseComponent &)=delete | 
| const std::string & | getType () const | 
| ComponentId_t | getId () const | 
| Returns unique component ID. | |
| uint8_t | getStatisticLoadLevel () const | 
| Returns Component Statistic load level. | |
| virtual void | emergencyShutdown () | 
| Called when SIGINT or SIGTERM has been seen. | |
| const std::string & | getName () const | 
| Returns Component/SubComponent Name. | |
| const std::string & | getParentComponentName () const | 
| Returns the name of the parent Component, or, if called on a Component, the name of that Component. | |
| virtual void | complete (unsigned int UNUSED(phase)) | 
| Used during the complete phase after the end of simulation. | |
| 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. | |
| UnitAlgebra | getCoreTimeBase () const | 
| Get the core timebase. | |
| SimTime_t | getCurrentSimCycle () const | 
| Return the current simulation time as a cycle count. | |
| int | getCurrentPriority () const | 
| Return the current priority. | |
| UnitAlgebra | getElapsedSimTime () const | 
| Return the elapsed simulation time as a time. | |
| SimTime_t | getEndSimCycle () const | 
| Return the end simulation time as a cycle count. | |
| UnitAlgebra | getEndSimTime () const | 
| Return the end simulation time as a time. | |
| RankInfo | getRank () const | 
| Get this instance's parallel rank. | |
| RankInfo | getNumRanks () const | 
| Get the number of parallel ranks in the simulation. | |
| Output & | getSimulationOutput () const | 
| Return the base simulation Output class instance. | |
| SimTime_t | getCurrentSimTime (TimeConverter *tc) const | 
| Return the simulated time since the simulation began in units specified by the parameter. | |
| SimTime_t | getCurrentSimTime (TimeConverter tc) const | 
| SimTime_t | getCurrentSimTime () const | 
| Return the simulated time since the simulation began in the default timebase. | |
| SimTime_t | getCurrentSimTime (const std::string &base) const | 
| Return the simulated time since the simulation began in timebase specified. | |
| 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. | |
| double | getRunPhaseElapsedRealTime () const | 
| Get the amount of real-time spent executing the run phase of the simulation. | |
| double | getInitPhaseElapsedRealTime () const | 
| Get the amount of real-time spent executing the init phase of the simulation. | |
| double | getCompletePhaseElapsedRealTime () const | 
| Get the amount of real-time spent executing the complete phase of the simulation. | |
| void | addWatchPoint (WatchPoint *pt) | 
| Add a watch point to all handlers in the Component Tree. | |
| void | removeWatchPoint (WatchPoint *pt) | 
| Remove a watch point from all handlers in the Component Tree. | |
| SubComponentSlotInfo * | getSubComponentSlotInfo (const std::string &name, bool fatalOnEmptyIndex=false) | 
| const std::vector< double > & | getCoordinates () const | 
| Retrieve the X,Y,Z coordinates of this component. | |
|  Public Member Functions inherited from SST::Core::Serialization::serializable_base | |
| virtual const char * | cls_name () const =0 | 
| virtual uint32_t | cls_id () const =0 | 
| virtual std::string | serialization_name () const =0 | 
| Protected Member Functions | |
| void | serialize_order (SST::Core::Serialization::serializer &ser) override | 
|  Protected Member Functions inherited from SST::BaseComponent | |
| bool | isSimulationRunModeInit () const | 
| Check to see if the run mode was set to INIT. | |
| bool | isSimulationRunModeRun () const | 
| Check to see if the run mode was set to RUN. | |
| bool | isSimulationRunModeBoth () const | 
| Check to see if the run mode was set to BOTH. | |
| std::string & | getOutputDirectory () const | 
| Returns the output directory of the simulation. | |
| void | requireLibrary (const std::string &name) | 
| Signifies that a library is required for this simulation. | |
| bool | isPortConnected (const std::string &name) const | 
| Determine if a port name is connected to any links. | |
| Link * | configureLink (const std::string &name, TimeConverter *time_base, Event::HandlerBase *handler=nullptr) | 
| Configure a Link. | |
| Link * | configureLink (const std::string &name, TimeConverter time_base, Event::HandlerBase *handler=nullptr) | 
| Link * | configureLink (const std::string &name, const std::string &time_base, Event::HandlerBase *handler=nullptr) | 
| Configure a Link. | |
| Link * | configureLink (const std::string &name, const UnitAlgebra &time_base, Event::HandlerBase *handler=nullptr) | 
| Configure a Link. | |
| Link * | configureLink (const std::string &name, Event::HandlerBase *handler=nullptr) | 
| Configure a Link. | |
| Link * | configureSelfLink (const std::string &name, TimeConverter *time_base, Event::HandlerBase *handler=nullptr) | 
| Configure a SelfLink (Loopback link) | |
| Link * | configureSelfLink (const std::string &name, TimeConverter time_base, Event::HandlerBase *handler=nullptr) | 
| Link * | configureSelfLink (const std::string &name, const std::string &time_base, Event::HandlerBase *handler=nullptr) | 
| Configure a SelfLink (Loopback link) | |
| Link * | configureSelfLink (const std::string &name, const UnitAlgebra &time_base, Event::HandlerBase *handler=nullptr) | 
| Configure a SelfLink (Loopback link) | |
| Link * | configureSelfLink (const std::string &name, Event::HandlerBase *handler=nullptr) | 
| Configure a SelfLink (Loopback link) | |
| TimeConverter * | registerClock (const std::string &freq, Clock::HandlerBase *handler, bool regAll=true) | 
| Registers a clock for this component. | |
| TimeConverter * | registerClock (const UnitAlgebra &freq, Clock::HandlerBase *handler, bool regAll=true) | 
| Registers a clock for this component. | |
| TimeConverter * | registerClock (TimeConverter *tc, Clock::HandlerBase *handler, bool regAll=true) | 
| Registers a clock for this component. | |
| TimeConverter * | registerClock (TimeConverter tc, Clock::HandlerBase *handler, bool regAll=true) | 
| void | unregisterClock (TimeConverter *tc, Clock::HandlerBase *handler) | 
| Removes a clock handler from the component. | |
| void | unregisterClock (TimeConverter tc, Clock::HandlerBase *handler) | 
| Cycle_t | reregisterClock (TimeConverter *freq, Clock::HandlerBase *handler) | 
| Reactivates an existing Clock and Handler. | |
| Cycle_t | reregisterClock (TimeConverter freq, Clock::HandlerBase *handler) | 
| Cycle_t | getNextClockCycle (TimeConverter *freq) | 
| Returns the next Cycle that the TimeConverter would fire If called prior to the simulation run loop, next Cycle is 0. | |
| Cycle_t | getNextClockCycle (TimeConverter freq) | 
| TimeConverter * | registerTimeBase (const 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. | |
| TimeConverter * | getTimeConverter (const std::string &base) const | 
| TimeConverter * | getTimeConverter (const UnitAlgebra &base) const | 
| bool | isStatisticShared (const std::string &statName, bool include_me=false) | 
| void | initiateInteractive (const std::string &msg) | 
| template<typename T> | |
| Statistics::Statistic< T > * | registerStatistic (SST::Params ¶ms, const std::string &statName, const std::string &statSubId="") | 
| Registers a statistic. | |
| template<typename T> | |
| Statistics::Statistic< T > * | registerStatistic (const std::string &statName, const std::string &statSubId="") | 
| template<typename... Args> | |
| Statistics::Statistic< std::tuple< Args... > > * | registerMultiStatistic (const std::string &statName, const std::string &statSubId="") | 
| template<typename... Args> | |
| Statistics::Statistic< std::tuple< Args... > > * | registerMultiStatistic (SST::Params ¶ms, const std::string &statName, const std::string &statSubId="") | 
| template<typename T> | |
| Statistics::Statistic< T > * | registerStatistic (const char *statName, const char *statSubId="") | 
| void | performStatisticOutput (Statistics::StatisticBase *stat) | 
| Called by the Components and Subcomponent to perform a statistic Output. | |
| void | performGlobalStatisticOutput () | 
| Performs a global statistic Output. | |
| template<typename T> | |
| T::ProfilePoint * | registerProfilePoint (const std::string &pointName) | 
| Registers a profiling point. | |
| template<class T, class... ARGS> | |
| T * | loadModule (const std::string &type, Params ¶ms, ARGS... args) | 
| Loads a module from an element Library. | |
| template<class T, class... ARGS> | |
| T * | loadComponentExtension (ARGS... args) | 
| template<class T> | |
| bool | isSubComponentLoadableUsingAPI (const std::string &type) | 
| Check to see if a given element type is loadable with a particular API. | |
| template<class T> | |
| bool | isUserSubComponentLoadableUsingAPI (const std::string &slot_name) | 
| Check to see if the element type loaded by the user into the. | |
| template<class T, class... ARGS> | |
| T * | loadAnonymousSubComponent (const std::string &type, const 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). | |
| template<class T> | |
| T * | loadUserSubComponent (const std::string &slot_name) | 
| Loads a user defined subcomponent (defined in input file to SST run). | |
| template<class T, class... ARGS> | |
| T * | loadUserSubComponent (const std::string &slot_name, uint64_t share_flags, ARGS... args) | 
| Loads a user defined subcomponent (defined in input file to SST run). | |
| void | fatal (uint32_t line, const char *file, const char *func, int exit_code, const char *format,...) const | 
| Convenience function for reporting fatal conditions. | |
| void | sst_assert (bool condition, uint32_t line, const char *file, const char *func, int exit_code, const char *format,...) const | 
| Convenience function for testing for and reporting fatal conditions. | |
| bool | isAnonymous () | 
| bool | isUser () | 
| void | setDefaultTimeBase (TimeConverter *tc) | 
| Manually set the default defaultTimeBase. | |
| void | setDefaultTimeBase (TimeConverter tc) | 
| Manually set the default defaultTimeBase. | |
| TimeConverter * | getDefaultTimeBase () | 
| const TimeConverter * | getDefaultTimeBase () const | 
| bool | doesSubComponentExist (const std::string &type) | 
| bool | doesComponentInfoStatisticExist (const std::string &statisticName) const | 
| uint8_t | getComponentInfoStatisticEnableLevel (const std::string &statisticName) const | 
| std::vector< Profile::ComponentProfileTool * > | getComponentProfileTools (const std::string &point) | 
| Friends | |
| class | Component | 
| Additional Inherited Members | |
|  Static Public Attributes inherited from SST::Core::Serialization::serializable_base | |
| static constexpr uint32_t | NullClsId = std::numeric_limits<uint32_t>::max() | 
|  Protected Types inherited from SST::BaseComponent | |
| using | StatCreateFunction | 
|  Protected Types inherited from SST::Core::Serialization::serializable_base | |
| enum | cxn_flag_t { ConstructorFlag } | 
|  Static Protected Member Functions inherited from SST::Core::Serialization::serializable_base | |
| static void | serializable_abort (uint32_t line, const char *file, const char *func, const char *obj) | 
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.
| 
 | 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.
| 
 | 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.
| 
 | overrideprotectedvirtual | 
Implements SST::Core::Serialization::serializable_base.
| 
 | 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.