Vanetza
 
Loading...
Searching...
No Matches
bursty_transmit_rate_control.hpp
1#ifndef BURSTY_TRANSMIT_RATE_CONTROL_HPP_AM7LROYD
2#define BURSTY_TRANSMIT_RATE_CONTROL_HPP_AM7LROYD
3
4#include <vanetza/common/clock.hpp>
5#include <vanetza/dcc/burst_budget.hpp>
6#include <vanetza/dcc/profile.hpp>
7#include <vanetza/dcc/state_machine_budget.hpp>
8#include <vanetza/dcc/transmit_rate_control.hpp>
9
10namespace vanetza
11{
12
13// forward declarations
14class Runtime;
15namespace dcc { class StateMachine; }
16
17namespace dcc
18{
19
20/**
21 * Transmit Rate Control with occasional DP0 message bursts.
22 * DP1, DP2 and DP3 messages are controlled by a state machine only.
23 */
25{
26public:
28
29 Clock::duration delay(const Transmission&) override;
30 Clock::duration interval(const Transmission&) override;
31 void notify(const Transmission&) override;
32
33private:
34 BurstBudget m_burst_budget;
35 StateMachineBudget m_fsm_budget;
36 const StateMachine& m_fsm;
37};
38
39} // namespace dcc
40} // namespace vanetza
41
42#endif /* BURSTY_TRANSMIT_RATE_CONTROL_HPP_AM7LROYD */
43
Clock::duration delay(const Transmission &) override
Clock::duration interval(const Transmission &) override