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