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_IMPL_HPP_
7 #define VSOMEIP_COMPAT_MESSAGE_IMPL_HPP_
8 
9 #if _MSC_VER >= 1300
10 #    pragma warning( disable : 4250 )
11 #endif
12 
13 #include <compat/vsomeip/message.hpp>
14 #include "message_base_impl.hpp"
15 
16 namespace vsomeip {
17 
18 class payload;
19 
20 class message_impl
21         : virtual public message_base_impl,
22           virtual public message {
23 
24 public:
25     VSOMEIP_EXPORT message_impl(const std::shared_ptr<vsomeip_v3::message> &_impl);
26     VSOMEIP_EXPORT virtual ~message_impl();
27 
28     VSOMEIP_EXPORT std::shared_ptr< payload > get_payload() const;
29     VSOMEIP_EXPORT void set_payload(std::shared_ptr< payload > _payload);
30 
31     VSOMEIP_EXPORT bool serialize(serializer *_to) const;
32     VSOMEIP_EXPORT bool deserialize(deserializer *_from);
33 };
34 
35 } // namespace vsomeip
36 
37 #endif // VSOMEIP_COMPAT_MESSAGE_IMPL_HPP_
38