1 // Copyright (C) 2014-2018 Bayerische Motoren Werke Aktiengesellschaft (BMW AG)
2 // This Source Code Form is subject to the terms of the Mozilla Public
3 // License, v. 2.0. If a copy of the MPL was not distributed with this
4 // file, You can obtain one at http://mozilla.org/MPL/2.0/.
5 
6 #ifndef VSOMEIP_V3_SD_IPV6_OPTION_IMPL_HPP_
7 #define VSOMEIP_V3_SD_IPV6_OPTION_IMPL_HPP_
8 
9 #include <boost/asio/ip/address.hpp>
10 
11 #include <vsomeip/primitive_types.hpp>
12 
13 #include "ip_option_impl.hpp"
14 
15 namespace vsomeip_v3 {
16 namespace sd {
17 
18 class ipv6_option_impl
19         : public ip_option_impl {
20 public:
21     ipv6_option_impl();
22     ipv6_option_impl(const boost::asio::ip::address &_address,
23             const uint16_t _port, const bool _is_reliable);
24     virtual ~ipv6_option_impl();
25 
26     bool operator ==(const option_impl &_other) const;
27 
28     const ipv6_address_t & get_address() const;
29     void set_address(const ipv6_address_t &_address);
30 
31     bool is_multicast() const;
32     bool serialize(vsomeip_v3::serializer *_to) const;
33     bool deserialize(vsomeip_v3::deserializer *_from);
34 
35 private:
36     ipv6_address_t address_;
37 };
38 
39 } // namespace sd
40 } // namespace vsomeip_v3
41 
42 #endif // VSOMEIP_V3_SD_IPV6_OPTION_IMPL_HPP_
43