12#ifndef SST_CORE_TIMEVORTEX_H
13#define SST_CORE_TIMEVORTEX_H
15#include "sst/core/activityQueue.h"
16#include "sst/core/module.h"
17#include "sst/core/serialization/serialize_impl_fwd.h"
29class TimeVortex :
public ActivityQueue
32 SST_ELI_DECLARE_BASE(TimeVortex)
40 virtual bool empty()
override = 0;
41 virtual int size()
override = 0;
48 virtual uint64_t getMaxDepth()
const {
return max_depth; }
49 virtual uint64_t getCurrentDepth()
const = 0;
54 virtual void fixup_handlers() {}
59 void fixup(Activity* act);
62 Simulation_impl* sim_ =
nullptr;
67void pack_timevortex(TimeVortex*& s, SST::Core::Serialization::serializer& ser);
68void unpack_timevortex(TimeVortex*& s, SST::Core::Serialization::serializer& ser);
77 switch ( ser.mode() ) {
78 case serializer::SIZER:
79 case serializer::PACK:
80 TV::pvt::pack_timevortex(s, ser);
82 case serializer::UNPACK:
83 TV::pvt::unpack_timevortex(s, ser);
91 SST_FRIEND_SERIALIZE();
Base class for all Activities in the SST Event Queue.
Definition activity.h:46
Base serialize class.
Definition serialize.h:110
This class is basically a wrapper for objects to declare the order in which their members should be s...
Definition serializer.h:45
Definition paramsInfo.h:39
Output object provides consistent method for outputting data to stdout, stderr and/or sst debug file.
Definition output.h:54
Parameter store.
Definition params.h:58
Main control class for a SST Simulation.
Definition simulation_impl.h:87
Primary Event Queue.
Definition timeVortex.h:30
virtual int size() override=0
Returns the number of activities in the queue.
virtual void insert(Activity *activity) override=0
Insert a new activity into the queue.
virtual bool empty() override=0
Returns true if the queue is empty.
virtual void print(Output &out) const =0
Print the state of the TimeVortex.
virtual Activity * pop() override=0
Remove and return the next activity.
virtual Activity * front() override=0
Returns the next activity.