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 #include "../include/deserializer.hpp" 7 #include "../include/payload_impl.hpp" 8 #include "../include/serializer.hpp" 9 10 namespace vsomeip_v3 { 11 payload_impl()12payload_impl::payload_impl() 13 : data_() { 14 } 15 payload_impl(const byte_t * _data,uint32_t _size)16payload_impl::payload_impl(const byte_t *_data, uint32_t _size) { 17 data_.assign(_data, _data + _size); 18 } 19 payload_impl(const std::vector<byte_t> & _data)20payload_impl::payload_impl(const std::vector<byte_t> &_data) 21 : data_(_data) { 22 } 23 payload_impl(const payload_impl & _payload)24payload_impl::payload_impl(const payload_impl& _payload) 25 : data_(_payload.data_) { 26 } 27 ~payload_impl()28payload_impl::~payload_impl() { 29 } 30 operator ==(const payload & _other)31bool payload_impl::operator==(const payload &_other) { 32 bool is_equal(true); 33 try { 34 const payload_impl &other = dynamic_cast< const payload_impl & >(_other); 35 is_equal = (data_ == other.data_); 36 } 37 catch (...) { 38 is_equal = false; 39 } 40 return is_equal; 41 } 42 get_data()43byte_t * payload_impl::get_data() { 44 return data_.data(); 45 } 46 get_data() const47const byte_t * payload_impl::get_data() const { 48 return data_.data(); 49 } 50 get_length() const51length_t payload_impl::get_length() const { 52 return length_t(data_.size()); 53 } 54 set_capacity(length_t _capacity)55void payload_impl::set_capacity(length_t _capacity) { 56 data_.reserve(_capacity); 57 } 58 set_data(const byte_t * _data,const length_t _length)59void payload_impl::set_data(const byte_t *_data, const length_t _length) { 60 data_.assign(_data, _data + _length); 61 } 62 set_data(const std::vector<byte_t> & _data)63void payload_impl::set_data(const std::vector< byte_t > &_data) { 64 data_ = _data; 65 } 66 set_data(std::vector<byte_t> && _data)67void payload_impl::set_data(std::vector< byte_t > &&_data) { 68 data_ = std::move(_data); 69 } 70 serialize(serializer * _to) const71bool payload_impl::serialize(serializer *_to) const { 72 return (0 != _to && _to->serialize(data_)); 73 } 74 deserialize(deserializer * _from)75bool payload_impl::deserialize(deserializer *_from) { 76 return (0 != _from && _from->deserialize(data_)); 77 } 78 79 } // namespace vsomeip_v3 80