1 // Copyright (C) 2016-2017 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_CFG_CLIENT_HPP
7 #define VSOMEIP_V3_CFG_CLIENT_HPP
8 
9 #include <map>
10 #include <memory>
11 #include <set>
12 
13 #include <vsomeip/primitive_types.hpp>
14 
15 namespace vsomeip_v3 {
16 namespace cfg {
17 
18 struct client {
clientvsomeip_v3::cfg::client19     client() : service_(ANY_SERVICE),
20             instance_(ANY_INSTANCE) {
21     }
22 
23     // ports for specific service / instance
24     service_t service_;
25     instance_t instance_;
26     std::map<bool, std::set<uint16_t> > ports_;
27     std::map<bool, uint16_t> last_used_specific_client_port_;
28 
29     // client port ranges mapped to remote port ranges
30     std::map<bool, std::pair<uint16_t, uint16_t> > remote_ports_;
31     std::map<bool, std::pair<uint16_t, uint16_t> > client_ports_;
32     std::map<bool, uint16_t> last_used_client_port_;
33 };
34 
35 } // namespace cfg
36 } // namespace vsomeip_v3
37 
38 #endif // VSOMEIP_V3_CFG_CLIENT_HPP
39