1 // Copyright (C) 2014-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_E2E_PROVIDER_HPP 7 #define VSOMEIP_V3_E2E_PROVIDER_HPP 8 9 #include <string> 10 #include <memory> 11 12 #include "../../buffer/buffer.hpp" 13 #include "../../e2exf/config.hpp" 14 #include "../../../../configuration/include/e2e.hpp" 15 #include "profile_interface/profile_interface.hpp" 16 17 namespace vsomeip_v3 { 18 namespace e2e { 19 20 class e2e_provider { 21 public: 22 virtual bool add_configuration(std::shared_ptr<cfg::e2e> config) = 0; 23 24 virtual bool is_protected(e2exf::data_identifier_t id) const = 0; 25 virtual bool is_checked(e2exf::data_identifier_t id) const = 0; 26 27 virtual std::size_t get_protection_base(e2exf::data_identifier_t _id) const = 0; 28 29 virtual void protect(e2exf::data_identifier_t id, 30 e2e_buffer &_buffer, instance_t _instance) = 0; 31 virtual void check(e2exf::data_identifier_t id, 32 const e2e_buffer &_buffer, instance_t _instance, 33 e2e::profile_interface::check_status_t &_generic_check_status) = 0; 34 }; 35 36 } // namespace e2e 37 } // namespace vsomeip_v3 38 39 #endif // VSOMEIP_V3_E2E_PROVIDER_HPP 40 41