MCPcopy Create free account
hub / github.com/COVESA/vsomeip / deserialize

Method deserialize

implementation/protocol/src/register_event.cpp:55–97  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

53}
54
55void register_event::deserialize(const std::vector<byte_t>& _buffer, size_t& _offset, error_e& _error) {
56
57 size_t its_size(_offset + sizeof(service_) + sizeof(instance_) + sizeof(event_) + sizeof(event_type_) + sizeof(is_provided_)
58 + sizeof(reliability_) + sizeof(is_cyclic_) + sizeof(num_eventg_));
59
60 // First check: Does the buffer contain the full static part of the data?
61 if (_buffer.size() < its_size) {
62 _error = error_e::ERROR_NOT_ENOUGH_BYTES;
63 return;
64 }
65
66 std::memcpy(&service_, &_buffer[_offset], sizeof(service_));
67 _offset += sizeof(service_);
68 std::memcpy(&instance_, &_buffer[_offset], sizeof(instance_));
69 _offset += sizeof(instance_);
70 std::memcpy(&event_, &_buffer[_offset], sizeof(event_));
71 _offset += sizeof(event_);
72 event_type_ = static_cast<event_type_e>(_buffer[_offset]);
73 _offset += sizeof(event_type_);
74 is_provided_ = static_cast<bool>(_buffer[_offset]);
75 _offset += sizeof(is_provided_);
76 reliability_ = static_cast<reliability_type_e>(_buffer[_offset]);
77 _offset += sizeof(reliability_);
78 is_cyclic_ = static_cast<bool>(_buffer[_offset]);
79 _offset += sizeof(is_cyclic_);
80 std::memcpy(&num_eventg_, &_buffer[_offset], sizeof(num_eventg_));
81 _offset += sizeof(num_eventg_);
82
83 // Second check: Does the buffer contain the full dynamic part of the data?
84 if (_buffer.size() < _offset + (num_eventg_ * sizeof(eventgroup_t))) {
85 _error = error_e::ERROR_NOT_ENOUGH_BYTES;
86 return;
87 }
88
89 eventgroups_.clear();
90 for (size_t i = 0; i < num_eventg_; i++) {
91 eventgroup_t its_g;
92 std::memcpy(&its_g, &_buffer[_offset], sizeof(its_g));
93 _offset += sizeof(its_g);
94
95 eventgroups_.insert(its_g);
96 }
97}
98
99void register_event::set_eventgroups(const std::set<eventgroup_t>& _eventgroups) {
100

Callers

nothing calls this directly

Calls 3

insertMethod · 0.80
sizeMethod · 0.45
clearMethod · 0.45

Tested by

no test coverage detected