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_MESSAGE_HEADER_IMPL_HPP 7 #define VSOMEIP_V3_MESSAGE_HEADER_IMPL_HPP 8 9 #include <vsomeip/export.hpp> 10 #include <vsomeip/primitive_types.hpp> 11 #include <vsomeip/enumeration_types.hpp> 12 #include <vsomeip/internal/serializable.hpp> 13 14 namespace vsomeip_v3 { 15 16 class message_base; 17 18 class message_header_impl: virtual public serializable { 19 public: 20 VSOMEIP_EXPORT message_header_impl(); 21 VSOMEIP_EXPORT message_header_impl(const message_header_impl& _header); 22 23 VSOMEIP_EXPORT bool serialize(serializer *_to) const; 24 VSOMEIP_EXPORT bool deserialize(deserializer *_from); 25 26 // internal 27 VSOMEIP_EXPORT message_base * get_owner() const; 28 VSOMEIP_EXPORT void set_owner(message_base *_owner); 29 30 public: 31 service_t service_; 32 method_t method_; 33 length_t length_; 34 client_t client_; 35 session_t session_; 36 protocol_version_t protocol_version_; 37 interface_version_t interface_version_; 38 message_type_e type_; 39 return_code_e code_; 40 41 instance_t instance_; 42 message_base *owner_; 43 }; 44 45 } // namespace vsomeip_v3 46 47 #endif // VSOMEIP_V3_MESSAGE_HEADER_IMPL_HPP 48