Vanetza
 
Loading...
Searching...
No Matches
cbf_packet_identifier.cpp
1#include <vanetza/geonet/cbf_packet_identifier.hpp>
2#include <vanetza/geonet/cbf_packet_buffer.hpp>
3
4namespace vanetza
5{
6namespace geonet
7{
8
9CbfPacketIdentifier identifier(const CbfPacket& packet)
10{
11 return identifier(packet.source(), packet.sequence_number());
12}
13
14CbfPacketIdentifier identifier(const Address& source, SequenceNumber sn)
15{
16 return std::make_tuple(source, sn);
17}
18
19} // namespace geonet
20} // namespace vanetza
21
22namespace std
23{
24
25size_t hash<vanetza::geonet::CbfPacketIdentifier>::operator()(const vanetza::geonet::CbfPacketIdentifier& id) const
26{
29 static_assert(tuple_size<vanetza::geonet::CbfPacketIdentifier>::value == 2, "Unexpected identifier tuple");
30
31 std::size_t seed = 0;
32 const Address& source = get<0>(id);
33 boost::hash_combine(seed, std::hash<Address>()(source));
34 const SequenceNumber& sn = get<1>(id);
35 boost::hash_combine(seed, static_cast<SequenceNumber::value_type>(sn));
36 return seed;
37}
38
39} // namespace std
STL namespace.