SST 12.1.0
Structural Simulation Toolkit
|
#include <clock.h>
Public Types | |
using | HandlerBase = SSTHandlerBase< bool, Cycle_t > |
Base handler for clock functions. | |
template<typename classT , typename dataT = void> | |
using | Handler = SSTHandler< bool, Cycle_t, classT, dataT > |
Used to create handlers for clock. More... | |
Public Member Functions | |
Clock (TimeConverter *period, int priority=CLOCKPRIORITY) | |
Create a new clock with a specified period. | |
void | schedule () |
Activates this clock object, by inserting into the simulation's timeVortex for future execution. | |
Cycle_t | getNextCycle () |
Return the time of the next clock tick. | |
bool | registerHandler (Clock::HandlerBase *handler) |
Add a handler to be called on this clock's tick. | |
bool | unregisterHandler (Clock::HandlerBase *handler, bool &empty) |
Remove a handler from the list of handlers to be called on the clock tick. | |
std::string | toString () const override |
Get a string represenation of the event. More... | |
Public Member Functions inherited from SST::Activity | |
virtual void | execute (void)=0 |
Function which will be called when the time for this Activity comes to pass. More... | |
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... | |
virtual std::string | toString () const |
Get a string represenation of the entry. More... | |
virtual void | print (const std::string &header, Output &out) const |
Public Member Functions inherited from SST::Core::Serialization::serializable | |
virtual const char * | cls_name () const =0 |
virtual void | serialize_order (serializer &ser)=0 |
virtual uint32_t | cls_id () const =0 |
virtual std::string | serialization_name () const =0 |
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) |
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... | |
void | serialize_order (SST::Core::Serialization::serializer &ser) override |
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) |
A Clock class.
Calls callback functions (handlers) on a specified period
using SST::Clock::Handler = SSTHandler<bool, Cycle_t, classT, dataT> |
Used to create handlers for clock.
The callback function is expected to be in the form of:
bool func(Cycle_t cycle)
In which case, the class is created with:
new Clock::Handler<classname>(this, &classname::function_name)
Or, to add static data, the callback function is:
bool func(Cycle_t cycle, dataT data)
and the class is created with:
new Clock::Handler<classname, dataT>(this, &classname::function_name, data)
In both cases, the boolean that's returned indicates whether the handler should be removed from the list or not. On return of true, the handler will be removed. On return of false, the handler will be left in the clock list.
|
overridevirtual |
Get a string represenation of the event.
The default version will just use the name of the class, retrieved through the cls_name() function inherited from the serialzable class, which will return the name of the last class to call one of the serialization macros (ImplementSerializable(), ImplementVirtualSerializable(), or NotSerializable()). Subclasses can override this function if they want to add additional information.
Reimplemented from SST::Activity.
References SST::Activity::getDeliveryTime(), SST::TimeConverter::getFactor(), and SST::Activity::getPriority().