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
7
namespace
vanetza
8
{
9
namespace
dcc
10
{
11
12
class
TransmitRateThrottle
13
{
14
public
:
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
32
class
TransmitRateFeedback
33
{
34
public
:
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
44
class
TransmitRateControl
:
public
TransmitRateThrottle
,
public
TransmitRateFeedback
45
{
46
};
47
48
}
// namespace dcc
49
}
// namespace vanetza
50
51
#
endif
/* TRANSMIT_RATE_CONTROL_HPP_NOPDFSY6 */
vanetza::Clock
Definition
clock.hpp:16
vanetza::Runtime
Definition
runtime.hpp:16
vanetza::dcc::BurstBudget
Definition
burst_budget.hpp:22
vanetza::dcc::BurstyTransmitRateControl
Definition
bursty_transmit_rate_control.hpp:25
vanetza::dcc::BurstyTransmitRateControl::delay
Clock::duration delay(const Transmission &) override
Definition
bursty_transmit_rate_control.cpp:16
vanetza::dcc::BurstyTransmitRateControl::notify
void notify(const Transmission &) override
Definition
bursty_transmit_rate_control.cpp:58
vanetza::dcc::BurstyTransmitRateControl::interval
Clock::duration interval(const Transmission &) override
Definition
bursty_transmit_rate_control.cpp:37
vanetza::dcc::StateMachineBudget
Definition
state_machine_budget.hpp:21
vanetza::dcc::StateMachine
Definition
state_machine.hpp:16
vanetza::dcc::StateMachine::transmission_interval
virtual Clock::duration transmission_interval() const =0
vanetza::dcc::Transmission
Definition
transmission.hpp:15
vanetza::dcc::TransmitRateControl
Definition
transmit_rate_control.hpp:45
vanetza::dcc::TransmitRateFeedback
Definition
transmit_rate_control.hpp:33
vanetza::dcc::TransmitRateFeedback::notify
virtual void notify(const Transmission &tx)=0
vanetza::dcc::TransmitRateThrottle
Definition
transmit_rate_control.hpp:13
vanetza::dcc::TransmitRateThrottle::delay
virtual Clock::duration delay(const Transmission &tx)=0
vanetza::dcc::TransmitRateThrottle::interval
virtual Clock::duration interval(const Transmission &tx)=0
vanetza
dcc
transmit_rate_control.hpp
Generated on
for Vanetza by
1.16.1