Vanetza
 
Loading...
Searching...
No Matches
single_reactive_transmit_rate_control.hpp
1#ifndef SINGLE_REACTIVE_TRANSMIT_RATE_CONTROL_HPP_2GPPO79B
2#define SINGLE_REACTIVE_TRANSMIT_RATE_CONTROL_HPP_2GPPO79B
3
4#include <vanetza/dcc/state_machine_budget.hpp>
5#include <vanetza/dcc/transmit_rate_control.hpp>
6
7namespace vanetza
8{
9
10// forward declarations
11class Runtime;
12namespace dcc { class StateMachine; }
13
14namespace dcc
15{
16
17/**
18 * Transmit Rate Control using a single reactive state machine for all messages
19 */
21{
22public:
24
25 Clock::duration delay(const Transmission&) override;
26 Clock::duration interval(const Transmission&) override;
27 void notify(const Transmission&) override;
28
29private:
30 const StateMachine& m_fsm;
31 StateMachineBudget m_fsm_budget;
32};
33
34} // namespace dcc
35} // namespace vanetza
36
37#endif /* SINGLE_REACTIVE_TRANSMIT_RATE_CONTROL_HPP_2GPPO79B */
38