SST  14.1.0
StructuralSimulationToolkit
SST::OneShot Class Reference

A OneShot Event class. More...

#include <oneshot.h>

Inheritance diagram for SST::OneShot:
SST::Action SST::Activity SST::Core::MemPoolItem SST::Core::Serialization::serializable SST::Core::Serialization::serializable_base

Public Types

using HandlerBase = SSTHandlerBaseNoArgs< void >
 Base handler for OneShot callbacks.
 
template<typename classT , typename dataT = void>
using Handler = SSTHandlerNoArgs< void, classT, dataT >
 Used to create handlers for clock. More...
 

Public Member Functions

 OneShot (TimeConverter *timeDelay, int priority=ONESHOTPRIORITY)
 Create a new One Shot for a specified time that will callback the handler function. More...
 
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 (void) override
 Function which will be called when the time for this Activity comes to pass. More...
 
void scheduleOneShot ()
 
SimTime_t computeDeliveryTime ()
 
- Public Member Functions inherited from SST::Action
bool isAction () final
 
- 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.
 
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. 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...
 
- Public Member Functions inherited from SST::Core::Serialization::serializable_base
virtual const char * cls_name () const =0
 
virtual uint32_t cls_id () const =0
 
virtual std::string serialization_name () const =0
 

Data Fields

NotSerializable(SST::OneShot) private typedef std::deque< std::pair< SimTime_t, HandlerList_t * > > HandlerVectorMap_t
 
TimeConverterm_timeDelay
 
HandlerVectorMap_t m_HandlerVectorMap
 
bool m_scheduled
 

Additional Inherited Members

- Static Public Attributes inherited from SST::Core::Serialization::serializable
static constexpr uint32_t NullClsId = std::numeric_limits<uint32_t>::max()
 
- Static Public Attributes inherited from SST::Core::Serialization::serializable_base
static constexpr uint32_t NullClsId = std::numeric_limits<uint32_t>::max()
 
- Protected Types inherited from SST::Core::Serialization::serializable_base
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)
 Called to signal to the Simulation object to end the simulation. More...
 
void serialize_order (SST::Core::Serialization::serializer &ser) override
 
- 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_base
static void serializable_abort (uint32_t line, const char *file, const char *func, const char *obj)
 

Detailed Description

A OneShot Event class.

Calls callback functions (handlers) on a specified period

Member Typedef Documentation

◆ Handler

template<typename classT , typename dataT = void>
using SST::OneShot::Handler = SSTHandlerNoArgs<void, classT, dataT>

Used to create handlers for clock.

The callback function is expected to be in the form of:

void func()

In which case, the class is created with:

new OneShot::Handler<classname>(this, &classname::function_name)

Or, to add static data, the callback function is:

void func(dataT data)

and the class is created with:

new OneShot::Handler<classname, dataT>(this, &classname::function_name, data)

Constructor & Destructor Documentation

◆ OneShot()

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 SST::Activity::setPriority().

Member Function Documentation

◆ execute()

void SST::OneShot::execute ( void  )
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().


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