Vanetza
 
Loading...
Searching...
No Matches
limeric_transmit_rate_control.hpp
1#ifndef LIMERIC_TRANSMIT_RATE_CONTROL_HPP_RY1TIBMJ
2#define LIMERIC_TRANSMIT_RATE_CONTROL_HPP_RY1TIBMJ
3
4#include <vanetza/dcc/limeric.hpp>
5#include <vanetza/dcc/limeric_budget.hpp>
6#include <vanetza/dcc/transmit_rate_control.hpp>
7
8namespace vanetza
9{
10
11// forward declaration
12class Runtime;
13
14namespace dcc
15{
16
17/**
18 * Transmit Rate Control implementation based on Limeric algorithm
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
29 /**
30 * Update TRC limits.
31 * Call this method whenever Limeric updates its duty cycle.
32 */
33 void update();
34
35private:
36 LimericBudget m_budget;
37};
38
39} // namespace dcc
40} // namespace vanetza
41
42#endif /* LIMERIC_TRANSMIT_RATE_CONTROL_HPP_RY1TIBMJ */
43
Clock::duration interval(const Transmission &) override
Clock::duration delay(const Transmission &) override