1 // Copyright (C) 2019 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_COMPAT_MESSAGE_BASE_IMPL_HPP_ 7 #define VSOMEIP_COMPAT_MESSAGE_BASE_IMPL_HPP_ 8 9 #include <compat/vsomeip/export.hpp> 10 #include <compat/vsomeip/message.hpp> 11 #include <vsomeip/message.hpp> 12 13 namespace vsomeip_v3 { 14 class message_impl; 15 } // namespace vsomeip_v3 16 17 namespace vsomeip { 18 19 class message; 20 21 class message_base_impl 22 : virtual public message_base { 23 24 public: 25 VSOMEIP_EXPORT message_base_impl(const std::shared_ptr<vsomeip_v3::message> &_impl); 26 VSOMEIP_EXPORT virtual ~message_base_impl(); 27 28 VSOMEIP_EXPORT message_t get_message() const; 29 VSOMEIP_EXPORT void set_message(message_t _message); 30 31 VSOMEIP_EXPORT service_t get_service() const; 32 VSOMEIP_EXPORT void set_service(service_t _service); 33 34 VSOMEIP_EXPORT instance_t get_instance() const; 35 VSOMEIP_EXPORT void set_instance(instance_t _instance); 36 37 VSOMEIP_EXPORT method_t get_method() const; 38 VSOMEIP_EXPORT void set_method(method_t _method); 39 40 VSOMEIP_EXPORT length_t get_length() const; 41 42 VSOMEIP_EXPORT request_t get_request() const; 43 44 VSOMEIP_EXPORT client_t get_client() const; 45 VSOMEIP_EXPORT void set_client(client_t _client); 46 47 VSOMEIP_EXPORT session_t get_session() const; 48 VSOMEIP_EXPORT void set_session(session_t _session); 49 50 VSOMEIP_EXPORT protocol_version_t get_protocol_version() const; 51 52 VSOMEIP_EXPORT interface_version_t get_interface_version() const; 53 VSOMEIP_EXPORT void set_interface_version(interface_version_t _interface_version); 54 55 VSOMEIP_EXPORT message_type_e get_message_type() const; 56 VSOMEIP_EXPORT void set_message_type(message_type_e _type); 57 58 VSOMEIP_EXPORT return_code_e get_return_code() const; 59 VSOMEIP_EXPORT void set_return_code(return_code_e _code); 60 61 VSOMEIP_EXPORT bool is_reliable() const; 62 VSOMEIP_EXPORT void set_reliable(bool _is_reliable); 63 64 VSOMEIP_EXPORT virtual bool is_initial() const; 65 VSOMEIP_EXPORT virtual void set_initial(bool _is_initial); 66 67 //VSOMEIP_EXPORT message * get_owner() const; 68 //VSOMEIP_EXPORT void set_owner(message *_owner); 69 70 VSOMEIP_EXPORT bool is_valid_crc() const; 71 VSOMEIP_EXPORT void set_is_valid_crc(bool _is_valid_crc); 72 get_impl() const73 inline std::shared_ptr<vsomeip_v3::message> get_impl() const { return impl_; } 74 75 protected: 76 //message *owner_; 77 std::shared_ptr<vsomeip_v3::message> impl_; 78 }; 79 80 } // namespace vsomeip 81 82 #endif // VSOMEIP_COMPAT_MESSAGE_BASE_IMPL_HPP_ 83