SST  14.0.0
StructuralSimulationToolkit
SST::Exit Class Reference

Exit Event Action. More...

#include <exit.h>

Inheritance diagram for SST::Exit:
SST::Action SST::Activity SST::Core::MemPoolItem SST::Core::Serialization::serializable

Public Member Functions

 Exit (int num_threads, bool single_rank)
 Create a new ExitEvent. More...
 
bool refInc (ComponentId_t, uint32_t thread)
 Increment Reference Count for a given Component ID.
 
bool refDec (ComponentId_t, uint32_t thread)
 Decrement Reference Count for a given Component ID.
 
unsigned int getRefCount ()
 
SimTime_t getEndTime ()
 Gets the end time of the simulation. More...
 
void setEndTime (SimTime_t time)
 Stores the time the simulation has ended. More...
 
SimTime_t computeEndTime ()
 Computes the end time of the simulation. More...
 
void execute (void) override
 Function which will be called when the time for this Activity comes to pass. More...
 
void check ()
 
void print (const std::string &header, Output &out) const override
 
unsigned int getGlobalCount ()
 
void serialize_order (SST::Core::Serialization::serializer &ser) override
 TODO to enable different partitioning on restart, will need to associate m_thread_counts and m_idSet back to components so that a new Exit event can be generated on restart.
 
 ImplementSerializable (SST::Exit) private
 
 Exit (const Exit &)
 
void operator= (Exit const &)
 
- Public Member Functions inherited from SST::Activity
void setDeliveryTime (SimTime_t time)
 Set the time for which this Activity should be delivered.
 
SimTime_t getDeliveryTime () const
 Return the time at which this Activity will be delivered.
 
int getPriority () const
 Return the Priority of this Activity.
 
void setOrderTag (uint32_t tag)
 Sets the order tag.
 
uint32_t getOrderTag () const
 Return the order tag associated with this activity.
 
uint64_t getQueueOrder () const
 Returns the queue order associated with this activity.
 
std::string toString () const override
 Get a string represenation of the event. More...
 
- Public Member Functions inherited from SST::Core::MemPoolItem
void * operator new (std::size_t size) noexcept
 Allocates memory from a memory pool for a new Activity.
 
void operator delete (void *ptr)
 Returns memory for this Activity to the appropriate memory pool. More...
 
- Public Member Functions inherited from SST::Core::Serialization::serializable
virtual const char * cls_name () const =0
 
virtual uint32_t cls_id () const =0
 
virtual std::string serialization_name () const =0
 

Data Fields

int num_threads
 
unsigned int m_refCount
 
unsigned int * m_thread_counts
 
unsigned int global_count
 
std::unordered_set< ComponentId_t > m_idSet
 
SimTime_t end_time
 
Core::ThreadSafe::Spinlock slock
 
bool single_rank
 

Additional Inherited Members

- Static Public Attributes inherited from SST::Core::Serialization::serializable
static constexpr uint32_t NullClsId = std::numeric_limits<uint32_t>::max()
 
- Protected Types inherited from SST::Core::Serialization::serializable
enum  cxn_flag_t { ConstructorFlag }
 
- Protected Member Functions inherited from SST::Action
void endSimulation ()
 Called to signal to the Simulation object to end the simulation.
 
void endSimulation (SimTime_t end)
 Called to signal to the Simulation object to end the simulation. More...
 
- Protected Member Functions inherited from SST::Activity
void setPriority (uint64_t priority)
 Set the priority of the Activity.
 
std::string getDeliveryTimeInfo () const
 Gets the delivery time info as a string. More...
 
 ImplementVirtualSerializable (SST::Activity) void setQueueOrder(uint64_t order)
 Set a new Queue order.
 
- Static Protected Member Functions inherited from SST::Core::Serialization::serializable
static void serializable_abort (uint32_t line, const char *file, const char *func, const char *obj)
 

Detailed Description

Exit Event Action.

Causes the simulation to halt

Constructor & Destructor Documentation

◆ Exit()

SST::Exit::Exit ( int  num_threads,
bool  single_rank 
)

Create a new ExitEvent.

Parameters
simSimulation object
single_rankTrue if there are no parallel ranks

Exit needs to register a handler during constructor time, which requires a simulation object. But the simulation class creates an Exit object during it's construction, meaning that Simulation::getSimulation() won't work yet. So Exit is the one exception to the "constructors shouldn't take simulation pointers" rule. However, it still needs to follow the "classes shouldn't contain pointers back to Simulation" rule.

References SST::Activity::setPriority().

Member Function Documentation

◆ computeEndTime()

SimTime_t SST::Exit::computeEndTime ( )

Computes the end time of the simulation.

Returns
End time of the simulation

References SST::Action::endSimulation().

◆ execute()

void SST::Exit::execute ( void  )
overridevirtual

Function which will be called when the time for this Activity comes to pass.

Implements SST::Activity.

◆ getEndTime()

SimTime_t SST::Exit::getEndTime ( )
inline

Gets the end time of the simulation.

Returns
Time when simulation ends

Referenced by SST::SyncManager::execute().

◆ print()

void SST::Exit::print ( const std::string &  header,
Output out 
) const
inlineoverridevirtual
Parameters
headerString to preface the exit action log
outSST Output logger object
Returns
void

Reimplemented from SST::Core::MemPoolItem.

References SST::Activity::getDeliveryTime(), SST::Activity::getPriority(), and SST::Output::output().

◆ setEndTime()

void SST::Exit::setEndTime ( SimTime_t  time)
inline

Stores the time the simulation has ended.

Parameters
timeCurrent simulation time
Returns
void

Referenced by SST::Simulation_impl::endSimulation().


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