12#ifndef SST_CORE_ONESHOT_H
13#define SST_CORE_ONESHOT_H
15#include "sst/core/action.h"
16#include "sst/core/sst_types.h"
17#include "sst/core/ssthandler.h"
21#define _ONESHOT_DBG(fmt, args...) __DBG(DBG_ONESHOT, OneShot, fmt, ##args)
58 template <
typename classT,
typename dataT =
void>
79 void print(
const std::string& header,
Output& out)
const override;
82 typedef std::vector<OneShot::HandlerBase*> HandlerList_t;
88 typedef std::deque<std::pair<SimTime_t, HandlerList_t*>> HandlerVectorMap_t;
94 void execute(
void)
override;
98 void scheduleOneShot();
99 SimTime_t computeDeliveryTime();
101 TimeConverter* m_timeDelay;
102 HandlerVectorMap_t m_HandlerVectorMap;
An Action is a schedulable Activity which is not an Event.
Definition: action.h:27
A OneShot Event class.
Definition: oneshot.h:33
void registerHandler(OneShot::HandlerBase *handler)
Add a handler to be called on this OneShot Event.
Definition: oneshot.cc:49
void print(const std::string &header, Output &out) const override
Print details about the OneShot.
Definition: oneshot.cc:140
bool isScheduled()
Is OneShot scheduled.
Definition: oneshot.h:73
Output object provides consistent method for outputting data to stdout, stderr and/or sst debug file.
Definition: output.h:52
Definition: ssthandler.h:295
Handlers with no arguments to callback from caller.
Definition: ssthandler.h:270
Event Handler class with user-data argument.
Definition: ssthandler.h:323
A class to convert between a component's view of time and the core's view of time.
Definition: timeConverter.h:27