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