Vanetza
 
Loading...
Searching...
No Matches
gbc_header.cpp
1#include "gbc_header.hpp"
2#include "areas.hpp"
3#include <stdexcept>
4
5namespace vanetza
6{
7namespace geonet
8{
9
10Area GeoBroadcastHeader::destination(HeaderType ht) const
11{
12 decltype(Area::shape) shape;
13 switch (ht) {
14 case HeaderType::GeoBroadcast_Circle:
15 shape = Circle();
16 break;
17 case HeaderType::GeoBroadcast_Rect:
18 shape = Rectangle();
19 break;
20 case HeaderType::GeoBroadcast_Elip:
21 shape = Ellipse();
22 break;
23 default:
24 throw std::runtime_error("Invalid GBC header type");
25 break;
26 }
27
28 return detail::GbcGacHeader::destination(shape);
29}
30
31void serialize(const GeoBroadcastHeader& header, OutputArchive& ar)
32{
33 detail::serialize(header, ar);
34}
35
36void deserialize(GeoBroadcastHeader& header, InputArchive& ar)
37{
38 detail::deserialize(header, ar);
39}
40
41} // namespace geonet
42} // namespace vanetza