The Sparta Modeling Framework
Loading...
Searching...
No Matches
PayloadEvent.hpp
Go to the documentation of this file.
1// <PayloadEvent.h> -*- C++ -*-
2
3
10#pragma once
11
12#include <set>
13#include <memory>
15
16namespace sparta
17{
18
85 template<class DataT, SchedulingPhase sched_phase_T = SchedulingPhase::Tick>
86 class PayloadEvent : public PhasedPayloadEvent<DataT>
87 {
88 public:
89 // The phase this Event was defined with
90 static constexpr SchedulingPhase event_phase = sched_phase_T;
91
92 public:
93
107 const std::string & name,
108 const SpartaHandler & consumer_event_handler,
109 Clock::Cycle delay = 0,
110 size_t max_outstanding =
112 PhasedPayloadEvent<DataT>(event_set, name, sched_phase_T,
113 consumer_event_handler, delay, max_outstanding)
114 { }
115
117 virtual ~PayloadEvent() = default;
118
122
125
128 };
129
130}
131
132
File that defines the PhasedPayloadEvent class. Suggest using sparta::PayloadEvent instead.
Class to schedule a Scheduleable in the future with a payload, typed on both the data type and the sc...
PayloadEvent< DataT, sched_phase_T > & operator=(const PayloadEvent< DataT, sched_phase_T > &)=delete
No assignments, no copies.
PayloadEvent(const PayloadEvent< DataT, sched_phase_T > &)=delete
No assignments, no copies.
PayloadEvent(TreeNode *event_set, const std::string &name, const SpartaHandler &consumer_event_handler, Clock::Cycle delay=0, size_t max_outstanding=PhasedPayloadEvent< DataT >::DEFAULT_MAX_OUTSTANDING)
Create an PayloadEvent base to generate PayloadEvent Scheduleables.
PayloadEvent(PayloadEvent< DataT, sched_phase_T > &&)=delete
No moves.
virtual ~PayloadEvent()=default
Destroy!
Class to schedule a Scheduleable in the future with a payload, but the class itself is not typed on t...
Definition Scheduler.hpp:63
Node in a composite tree representing a sparta Tree item.
Definition TreeNode.hpp:204
Macros for handling exponential backoff.
SchedulingPhase
The SchedulingPhases used for events (Tick, Update, PortUpdate, etc)