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

Method deserialize

implementation/protocol/src/subscribe_ack_command_base.cpp:107–136  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

105}
106
107void subscribe_ack_command_base::deserialize(const std::vector<byte_t>& _buffer, error_e& _error) {
108
109 size_t its_size(COMMAND_HEADER_SIZE + sizeof(service_) + sizeof(instance_) + sizeof(eventgroup_) + sizeof(subscriber_) + sizeof(event_)
110 + sizeof(pending_id_));
111
112 if (its_size > _buffer.size()) {
113
114 _error = error_e::ERROR_NOT_ENOUGH_BYTES;
115 return;
116 }
117
118 // deserialize header
119 command::deserialize(_buffer, _error);
120 if (_error != error_e::ERROR_OK)
121 return;
122
123 // deserialize payload
124 size_t its_offset(COMMAND_POSITION_PAYLOAD);
125 std::memcpy(&service_, &_buffer[its_offset], sizeof(service_));
126 its_offset += sizeof(service_);
127 std::memcpy(&instance_, &_buffer[its_offset], sizeof(instance_));
128 its_offset += sizeof(instance_);
129 std::memcpy(&eventgroup_, &_buffer[its_offset], sizeof(eventgroup_));
130 its_offset += sizeof(eventgroup_);
131 std::memcpy(&subscriber_, &_buffer[its_offset], sizeof(subscriber_));
132 its_offset += sizeof(subscriber_);
133 std::memcpy(&event_, &_buffer[its_offset], sizeof(event_));
134 its_offset += sizeof(event_);
135 std::memcpy(&pending_id_, &_buffer[its_offset], sizeof(pending_id_));
136}
137
138} // namespace protocol
139} // namespace vsomeip

Callers

nothing calls this directly

Calls 2

deserializeFunction · 0.85
sizeMethod · 0.45

Tested by

no test coverage detected