Vanetza
Loading...
Searching...
No Matches
transmission.hpp
1
#
ifndef
TRANSMISSION_HPP_SDC4RMQE
2
#
define
TRANSMISSION_HPP_SDC4RMQE
3
4
#
include
<
vanetza
/
access
/
data_rates
.
hpp
>
5
#
include
<
vanetza
/
common
/
clock
.
hpp
>
6
#
include
<
vanetza
/
dcc
/
profile
.
hpp
>
7
#
include
<
cstddef
>
8
9
namespace
vanetza
10
{
11
namespace
dcc
12
{
13
14
class
Transmission
15
{
16
public
:
17
virtual
Profile profile()
const
= 0;
18
virtual
const
access::
DataRateG5
* data_rate()
const
= 0;
19
virtual
std::size_t body_length()
const
= 0;
20
virtual
Clock
::duration channel_occupancy()
const
;
21
virtual
~Transmission() =
default
;
22
};
23
24
struct
TransmissionLite
:
public
Transmission
25
{
26
constexpr
TransmissionLite(Profile dp, std::size_t len) : m_profile(dp), m_length(len) {}
27
28
Profile m_profile;
29
std::size_t m_length = 0;
/*< length in bytes of MAC frame body */
30
const
access::
DataRateG5
* m_data_rate =
nullptr
;
31
32
Profile profile()
const
override
{
return
m_profile; }
33
const
access::
DataRateG5
* data_rate()
const
override
{
return
m_data_rate; }
34
std::size_t body_length()
const
override
{
return
m_length; }
35
};
36
37
}
// namespace dcc
38
}
// namespace vanetza
39
40
#
endif
/* TRANSMISSION_HPP_SDC4RMQE */
vanetza::Clock
Definition
clock.hpp:16
vanetza::Runtime
Definition
runtime.hpp:16
vanetza::access::DataRateG5
Definition
data_rates.hpp:12
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::TransmissionLite
Definition
transmission.hpp:25
vanetza
dcc
transmission.hpp
Generated on
for Vanetza by
1.16.1