Vanetza
Loading...
Searching...
No Matches
next_hop.cpp
1#include "next_hop.hpp"
2
3namespace vanetza
4{
5namespace geonet
6{
7
8NextHop::NextHop() : m_state(State::Discarded)
9{
10}
11
13{
14 return m_state == State::Discarded;
15}
16
18{
19 return m_state == State::Buffered;
20}
21
22bool NextHop::valid() const
23{
24 return m_state == State::Valid;
25}
26
28{
29 return m_destination;
30}
31
33{
34 if (valid()) {
35 PendingPacket<GbcPdu>(std::move(m_packet), m_destination).process();
36 m_state = State::Discarded;
37 return true;
38 } else {
39 return false;
40 }
41}
42
43void NextHop::transmit(Packet&& packet, const MacAddress& destination)
44{
45 m_state = NextHop::State::Valid;
46 m_packet = std::move(packet);
47 m_destination = destination;
48}
49
51{
52 m_state = NextHop::State::Discarded;
53}
54
56{
57 m_state = NextHop::State::Buffered;
58}
59
60} // namespace geonet
61} // namespace vanetza
62
const MacAddress & mac() const
Definition next_hop.cpp:27
void transmit(Packet &&packet, const MacAddress &destination)
Definition next_hop.cpp:43