SST
13.1.0
Structural Simulation Toolkit
|
Public Types | |
using | HandlerBase = SSTHandlerBase< void, Event * > |
Base handler for event delivery. | |
template<typename classT , typename dataT = void> | |
using | Handler = SSTHandler< void, Event *, classT, dataT > |
Used to create handlers to notify the component when a message has arrived. More... | |
Public Member Functions | |
PortInterface (ComponentId_t id) | |
virtual void | setNotifyOnReceive (HandlerBase *functor) |
virtual void | send (MessageEvent *ev)=0 |
Public Member Functions inherited from SST::SubComponent | |
SST_ELI_DECLARE_INFO_EXTERN (ELI::ProvidesInterface, ELI::ProvidesParams, ELI::ProvidesPorts, ELI::ProvidesSubComponentSlots, ELI::ProvidesStats, ELI::ProvidesProfilePoints, ELI::ProvidesAttributes) 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. | |
virtual void | finish () override |
Called after simulation completes, but before objects are destroyed. More... | |
Public Member Functions inherited from SST::BaseComponent | |
BaseComponent (ComponentId_t id) | |
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 (void) |
Called when SIGINT or SIGTERM has been seen. More... | |
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. 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... | |
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 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 (const std::string &base) const |
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. | |
double | getRunPhaseElapsedRealTime () const |
Get the amount of real-time spent executing the run phase of the simulation. More... | |
double | getInitPhaseElapsedRealTime () const |
Get the amount of real-time spent executing the init phase of the simulation. More... | |
double | getCompletePhaseElapsedRealTime () const |
Get the amount of real-time spent executing the complete phase of the simulation. More... | |
SubComponentSlotInfo * | getSubComponentSlotInfo (const std::string &name, bool fatalOnEmptyIndex=false) |
const std::vector< double > & | getCoordinates () const |
Retrieve the X,Y,Z coordinates of this component. | |
Protected Attributes | |
HandlerBase * | rFunctor |
Additional Inherited Members | |
Protected Types inherited from SST::BaseComponent | |
using | StatCreateFunction = std::function< Statistics::StatisticBase *(BaseComponent *, Statistics::StatisticProcessingEngine *, const std::string &, const std::string &, const std::string &, Params &)> |
Protected Member Functions inherited from SST::BaseComponent | |
bool | isSimulationRunModeInit () const |
Check to see if the run mode was set to INIT. More... | |
bool | isSimulationRunModeRun () const |
Check to see if the run mode was set to RUN. More... | |
bool | isSimulationRunModeBoth () const |
Check to see if the run mode was set to BOTH. More... | |
std::string & | getOutputDirectory () const |
Returns the output directory of the simulation. More... | |
void | requireLibrary (const std::string &name) |
Signifies that a library is required for this simulation. More... | |
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. More... | |
Link * | configureLink (const std::string &name, const std::string &time_base, Event::HandlerBase *handler=nullptr) |
Configure a Link. More... | |
Link * | configureLink (const std::string &name, const UnitAlgebra &time_base, Event::HandlerBase *handler=nullptr) |
Configure a Link. More... | |
Link * | configureLink (const std::string &name, Event::HandlerBase *handler=nullptr) |
Configure a Link. More... | |
Link * | configureSelfLink (const std::string &name, TimeConverter *time_base, Event::HandlerBase *handler=nullptr) |
Configure a SelfLink (Loopback link) More... | |
Link * | configureSelfLink (const std::string &name, const std::string &time_base, Event::HandlerBase *handler=nullptr) |
Configure a SelfLink (Loopback link) More... | |
Link * | configureSelfLink (const std::string &name, const UnitAlgebra &time_base, Event::HandlerBase *handler=nullptr) |
Configure a SelfLink (Loopback link) More... | |
Link * | configureSelfLink (const std::string &name, Event::HandlerBase *handler=nullptr) |
Configure a SelfLink (Loopback link) More... | |
TimeConverter * | registerClock (const 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) |
Registers a clock for this component. More... | |
TimeConverter * | registerClock (TimeConverter *tc, Clock::HandlerBase *handler, bool regAll=true) |
Registers a clock for this component. More... | |
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 If called prior to the simulation run loop, next Cycle is 0. More... | |
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. More... | |
TimeConverter * | getTimeConverter (const std::string &base) const |
TimeConverter * | getTimeConverter (const UnitAlgebra &base) const |
bool | isStatisticShared (const std::string &statName, bool include_me=false) |
template<typename T > | |
Statistics::Statistic< T > * | registerStatistic (SST::Params ¶ms, const std::string &statName, const std::string &statSubId="") |
Registers a statistic. More... | |
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. More... | |
void | performGlobalStatisticOutput () |
Performs a global statistic Output. More... | |
template<typename T > | |
T::ProfilePoint * | registerProfilePoint (const std::string &pointName) |
Registers a profiling point. More... | |
template<class T , class... ARGS> | |
T * | loadModule (const std::string &type, Params ¶ms, ARGS... args) |
Loads a module from an element Library. More... | |
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. More... | |
template<class T > | |
bool | isUserSubComponentLoadableUsingAPI (const std::string &slot_name) |
Check to see if the element type loaded by the user into the. More... | |
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). More... | |
template<class T > | |
T * | loadUserSubComponent (const std::string &slot_name) |
Loads a user defined subcomponent (defined in input file to SST run). More... | |
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). More... | |
void | fatal (uint32_t line, const char *file, const char *func, int exit_code, const char *format,...) const |
Convenience function for reporting fatal conditions. More... | |
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. More... | |
bool | isAnonymous () |
bool | isUser () |
void | setDefaultTimeBase (TimeConverter *tc) |
Manually set the default detaulTimeBase. | |
TimeConverter * | getDefaultTimeBase () |
const TimeConverter * | getDefaultTimeBase () const |
bool | doesSubComponentExist (const std::string &type) |
Simulation * | getSimulation () const |
bool | doesComponentInfoStatisticExist (const std::string &statisticName) const |
uint8_t | getComponentInfoStatisticEnableLevel (const std::string &statisticName) const |
std::vector< Profile::ComponentProfileTool * > | getComponentProfileTools (const std::string &point) |
using SST::CoreTest::MessageMesh::PortInterface::Handler = SSTHandler<void, Event*, classT, dataT> |
Used to create handlers to notify the component when a message has arrived.
endpoint when the The callback function is expected to be in the form of:
void func(Event* ev)
In which case, the class is created with:
new PortInterface::Handler<classname>(this, &classname::function_name)
Or, to add static data, the callback function is:
void func(Event* ev, dataT data)
and the class is created with:
new PortInterface::Handler<classname, dataT>(this, &classname::function_name, data)