Vanetza
 
Loading...
Searching...
No Matches
transmit_rate_control.hpp
1#ifndef TRANSMIT_RATE_CONTROL_HPP_NOPDFSY6
2#define TRANSMIT_RATE_CONTROL_HPP_NOPDFSY6
3
4#include <vanetza/common/clock.hpp>
5#include <vanetza/dcc/transmission.hpp>
6
7namespace vanetza
8{
9namespace dcc
10{
11
13{
14public:
15 /**
16 * Duration until next transmission has to be delayed
17 * \param tx transmission
18 * \return waiting time until next transmission is allowed
19 */
20 virtual Clock::duration delay(const Transmission& tx) = 0;
21
22 /**
23 * Current interval between packets
24 * \param tx transmission
25 * \return interval enforced by DCC_access
26 */
27 virtual Clock::duration interval(const Transmission& tx) = 0;
28
29 virtual ~TransmitRateThrottle() = default;
30};
31
33{
34public:
35 /**
36 * Notify about an actual transmission at link layer
37 * \param tx transmission
38 */
39 virtual void notify(const Transmission& tx) = 0;
40
41 virtual ~TransmitRateFeedback() = default;
42};
43
45{
46};
47
48} // namespace dcc
49} // namespace vanetza
50
51#endif /* TRANSMIT_RATE_CONTROL_HPP_NOPDFSY6 */
52
virtual void notify(const Transmission &tx)=0
virtual Clock::duration delay(const Transmission &tx)=0
virtual Clock::duration interval(const Transmission &tx)=0