SST 15.0
Structural Simulation Toolkit
|
A OneShot Event class. More...
#include <oneshot.h>
Public Types | |
using | HandlerBase = SSTHandlerBaseNoArgs<void> |
Base handler for OneShot callbacks. | |
template<typename classT, auto funcT, typename dataT = void> | |
using | Handler2 = SSTHandler2<void, void, classT, dataT, funcT> |
Used to create checkpointable handlers for OneShot. | |
using | HandlerVectorMap_t = std::deque<std::pair<SimTime_t, HandlerList_t*>> |
Public Member Functions | |
OneShot (TimeConverter *timeDelay, int priority=ONESHOTPRIORITY) | |
Create a new One Shot for a specified time that will callback the handler function. | |
bool | isScheduled () |
Is OneShot scheduled. | |
void | registerHandler (OneShot::HandlerBase *handler) |
Add a handler to be called on this OneShot Event. | |
void | print (const std::string &header, Output &out) const override |
Print details about the OneShot. | |
void | execute () override |
Function which will be called when the time for this Activity comes to pass. | |
void | scheduleOneShot () |
SimTime_t | computeDeliveryTime () |
![]() | |
bool | isAction () override 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. | |
void | setQueueOrder (uint64_t order) |
Set a new Queue order. | |
virtual void | copyAllDeliveryInfo (const Activity *act) |
![]() | |
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. | |
![]() | |
virtual const char * | cls_name () const =0 |
virtual uint32_t | cls_id () const =0 |
virtual std::string | serialization_name () const =0 |
Data Fields | |
TimeConverter * | m_timeDelay |
HandlerVectorMap_t | m_HandlerVectorMap |
bool | m_scheduled |
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. | |
void | serialize_order (SST::Core::Serialization::serializer &ser) override |
![]() | |
void | setPriority (uint64_t priority) |
Set the priority of the Activity. | |
std::string | getDeliveryTimeInfo () const |
Gets the delivery time info as a string. | |
void | serialize_order (SST::Core::Serialization::serializer &ser) override |
ImplementVirtualSerializable (SST::Activity) | |
![]() | |
static void | serializable_abort (uint32_t line, const char *file, const char *func, const char *obj) |
using SST::OneShot::Handler2 = SSTHandler2<void, void, classT, dataT, funcT> |
Used to create checkpointable handlers for OneShot.
The callback function is expected to be in the form of:
void func()
In which case, the class is created with:
new OneShot::Handler2<classname, &classname::function_name>(this)
Or, to add static data, the callback function is:
void func(dataT data)
and the class is created with:
new OneShot::Handler2<classname, &classname::function_name, dataT>(this, data)
SST::OneShot::OneShot | ( | TimeConverter * | timeDelay, |
int | priority = ONESHOTPRIORITY ) |
Create a new One Shot for a specified time that will callback the handler function.
Note: OneShot cannot be canceled, and will always callback after the timedelay.
References OneShot(), and SST::Activity::setPriority().
Referenced by OneShot().
|
overridevirtual |
Function which will be called when the time for this Activity comes to pass.
Implements SST::Activity.
References SST::Simulation_impl::getCurrentSimCycle(), and SST::Simulation_impl::getSimulation().
|
overridevirtual |
Print details about the OneShot.
Reimplemented from SST::Core::MemPoolItem.
References SST::Activity::getDeliveryTime(), SST::Activity::getPriority(), and SST::Output::output().