The Sparta Modeling Framework
Loading...
Searching...
No Matches
SingleCycleUniqueEvent.hpp
Go to the documentation of this file.
1// <SingleCycleUniqueEvent.h> -*- C++ -*-
2
3
10#pragma once
11
12#include <set>
13#include <memory>
16
17namespace sparta
18{
19
73 template<SchedulingPhase sched_phase_T = SchedulingPhase::Tick>
75 {
76 public:
77 // The phase this Event was defined with
78 static constexpr SchedulingPhase event_phase = sched_phase_T;
79
80 // Bring in PhasedSingleCycleUniqueEvent's schedule method.
81 // This is the only one really allowed.
83
95 const std::string & name,
96 const SpartaHandler & consumer_event_handler) :
97 PhasedSingleCycleUniqueEvent(event_set, name, sched_phase_T,
98 consumer_event_handler)
99 { }
100
102 virtual ~SingleCycleUniqueEvent() = default;
103
106
109
112 };
113
114}
115
116
File that defines the PhasedSingleCycleUniqueEvent class.
File that defines the Scheduleable class.
An event that can only be schedule one cycle into the future.
void schedule(Clock::Cycle rel_cycle=0)
Schedule this PhasedSingleCycleUniqueEvent exactly zero or one cycle into the future....
An event that can only be schedule one cycle into the future.
SingleCycleUniqueEvent(const SingleCycleUniqueEvent &)=delete
Disallow the copying of the SingleCycleUniqueEvent.
virtual ~SingleCycleUniqueEvent()=default
Uniquely destroy.
SingleCycleUniqueEvent & operator=(const SingleCycleUniqueEvent &)=delete
Disallow the assignment of the SingleCycleUniqueEvent.
SingleCycleUniqueEvent(TreeNode *event_set, const std::string &name, const SpartaHandler &consumer_event_handler)
Create a SingleCycleUniqueEvent.
SingleCycleUniqueEvent(SingleCycleUniqueEvent &&)=delete
Disallow moves.
Node in a composite tree representing a sparta Tree item.
Definition TreeNode.hpp:205
Macros for handling exponential backoff.
SchedulingPhase
The SchedulingPhases used for events (Tick, Update, PortUpdate, etc)