12 #ifndef SST_CORE_CLOCK_H 13 #define SST_CORE_CLOCK_H 15 #include "sst/core/action.h" 16 #include "sst/core/ssthandler.h" 21 #define _CLE_DBG(fmt, args...) __DBG(DBG_CLOCK, Clock, fmt, ##args) 67 template <
typename classT,
typename dataT =
void>
73 template <
typename classT, auto funcT,
typename dataT =
void>
102 std::string
toString()
const override;
106 typedef std::vector<Clock::HandlerBase*> StaticHandlerMap_t;
110 void execute(
void)
override;
112 Cycle_t currentCycle;
114 StaticHandlerMap_t staticHandlerMap;
126 const ComponentId_t comp_id;
127 const std::string comp_name;
128 const std::string comp_type;
142 #endif // SST_CORE_CLOCK_H An Action is a schedulable Activity which is not an Event.
Definition: action.h:26
This class is basically a wrapper for objects to declare the order in which their members should be s...
Definition: serializer.h:35
Handlers with 1 handler defined argument to callback from caller.
Definition: ssthandler.h:210
Base template for the class.
Definition: ssthandler.h:466
Handler class with user-data argument.
Definition: ssthandler.h:284
A class to convert between a component's view of time and the core's view of time.
Definition: timeConverter.h:27
bool isHandlerRegistered(Clock::HandlerBase *handler)
Checks to see if a handler is registered with this clock.
Definition: clock.cc:66
Cycle_t getNextCycle()
Return the time of the next clock tick.
Definition: clock.cc:77
void updateCurrentCycle()
Update current cycle count - needed at simulation end if clock has run ahead of simulation end and to...
Definition: clock.cc:141
bool registerHandler(Clock::HandlerBase *handler)
Add a handler to be called on this clock's tick.
Definition: clock.cc:39
A Clock class.
Definition: clock.h:32
std::string toString() const override
Get a string represenation of the event.
Definition: clock.cc:149
bool unregisterHandler(Clock::HandlerBase *handler, bool &empty)
Remove a handler from the list of handlers to be called on the clock tick.
Definition: clock.cc:47
void schedule()
Activates this clock object, by inserting into the simulation's timeVortex for future execution...
Definition: clock.cc:119