40 template<SchedulingPhase sched_phase_T = SchedulingPhase::Tick>
97 const std::string & name,
98 const SpartaHandler & consumer_event_handler,
99 Clock::Cycle delay = 0) :
100 EventNode(event_set, name, sched_phase_T),
101 Scheduleable(consumer_event_handler, delay, sched_phase_T),
102 fancy_name_(name +
"[" + consumer_event_handler.
getName() +
"]")
118 void createResource_()
override {
124 std::string fancy_name_;
File that defines the EventNode class.
File that defines the Scheduleable class.
EventNode is the base class for all event types in SPARTA. Not to be used by the modeler....
static Scheduler * determineScheduler(const Clock *clk)
Center point of Scheduler location.
Event is a simple class for scheduling random events on the Scheduler.
Event(TreeNode *event_set, const std::string &name, const SpartaHandler &consumer_event_handler, Clock::Cycle delay=0)
Create a generic Event. This type of class is hardly used, but available.
Scheduleable & getScheduleable() override
Get the scheduleable associated with this event node.
A class that defines the basic scheduling interface to the Scheduler. Not intended to be used by mode...
void schedule()
Schedule this event with its pre-set delay using the pre-set Clock.
void setLabel(const char *label)
Set a new label for this Scheduleable – used in debugging.
PrecedenceSetup scheduler_
Cache a pointer to the scheduler used.
const Clock * local_clk_
A local clock for speed.
Node in a composite tree representing a sparta Tree item.
const Clock * getClock() override
Walks up parents (starting with self) until a parent with an associated local clock is found,...
const std::string & getName() const override
Gets the name of this node.
Macros for handling exponential backoff.
SchedulingPhase
The SchedulingPhases used for events (Tick, Update, PortUpdate, etc)