Vanetza
 
Loading...
Searching...
No Matches
state_machine.hpp
1#ifndef STATE_MACHINE_HPP_0MHYOQU7
2#define STATE_MACHINE_HPP_0MHYOQU7
3
4#include <vanetza/dcc/channel_load.hpp>
5#include <vanetza/common/clock.hpp>
6
7namespace vanetza
8{
9namespace dcc
10{
11
12/**
13 * State machine interface used for Transmit Rate Control
14 */
16{
17public:
18 /**
19 * Trigger state transition by updated channel load
20 * \param cl new channel load measurement
21 */
22 virtual void update(ChannelLoad cl) = 0;
23
24 /**
25 * Get current transmission interval
26 * \return duration between two transmissions
27 */
28 virtual Clock::duration transmission_interval() const = 0;
29
30 virtual ~StateMachine() = default;
31};
32
33} // namespace dcc
34} // namespace vanetza
35
36#endif /* STATE_MACHINE_HPP_0MHYOQU7 */
37
virtual Clock::duration transmission_interval() const =0
virtual void update(ChannelLoad cl)=0