SST
14.1.0
StructuralSimulationToolkit
|
#include <exit.h>
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 &) |
![]() | |
bool | isAction () final |
![]() | |
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. | |
virtual bool | isEvent () |
std::string | toString () const override |
Get a string represenation of the event. More... | |
![]() | |
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... | |
![]() | |
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 constexpr uint32_t | NullClsId = std::numeric_limits<uint32_t>::max() |
![]() | |
static constexpr uint32_t | NullClsId = std::numeric_limits<uint32_t>::max() |
![]() | |
enum | cxn_flag_t { ConstructorFlag } |
![]() | |
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... | |
![]() | |
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 void | serializable_abort (uint32_t line, const char *file, const char *func, const char *obj) |
SST::Exit::Exit | ( | int | num_threads, |
bool | single_rank | ||
) |
Create a new ExitEvent.
sim | Simulation object |
single_rank | True 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().
SimTime_t SST::Exit::computeEndTime | ( | ) |
Computes the end time of the simulation.
References SST::Action::endSimulation().
|
overridevirtual |
Function which will be called when the time for this Activity comes to pass.
Implements SST::Activity.
|
inline |
Gets the end time of the simulation.
Referenced by SST::SyncManager::execute().
|
inlineoverridevirtual |
header | String to preface the exit action log |
out | SST Output logger object |
Reimplemented from SST::Core::MemPoolItem.
References SST::Activity::getDeliveryTime(), SST::Activity::getPriority(), and SST::Output::output().
|
inline |
Stores the time the simulation has ended.
time | Current simulation time |
Referenced by SST::Simulation_impl::endSimulation().