SST  11.1.0
SST::Clock Class Reference

A Clock class. More...

#include <clock.h>

Inheritance diagram for SST::Clock:
SST::Action SST::Activity SST::Core::Serialization::serializable

Public Types

using HandlerBase = SSTHandlerBase< bool, Cycle_t, true >
 Base handler for clock functions.
template<typename classT , typename dataT = void>
using Handler = SSTHandler< bool, Cycle_t, true, 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
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.
std::string getDeliveryTimeInfo () const
virtual void print (const std::string &header, Output &out) const
 Generic print-print function for this Activity. More...
void setQueueOrder (uint64_t order)
 Set a new Queue order.
uint64_t getQueueOrder ()
int32_t getEnforceLinkOrder ()
- Public Member Functions inherited from SST::Core::Serialization::serializable
virtual const char * cls_name () const =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 (int priority)
 Set the priority of the Activity.
void serialize_order (SST::Core::Serialization::serializer &ser) override
- 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)
- Protected Attributes inherited from SST::Activity
int32_t enforce_link_order

Detailed Description

A Clock class.

Calls callback functions (handlers) on a specified period

Member Typedef Documentation

template<typename classT , typename dataT = void>
using SST::Clock::Handler = SSTHandler<bool, Cycle_t, true, 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.

Member Function Documentation

std::string SST::Clock::toString ( ) const

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().

The documentation for this class was generated from the following files: