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

Method deserialize_ids

implementation/security/src/policy.cpp:151–183  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

149}
150
151bool policy::deserialize_ids(const byte_t*& _data, uint32_t& _size,
152 boost::icl::interval_map<uint16_t, boost::icl::interval_set<uint16_t>>& _ids) const {
153
154 boost::icl::interval_map<uint16_t, boost::icl::interval_set<uint16_t>> its_ids;
155 uint32_t its_array_length;
156 bool its_result;
157
158 its_result = deserialize_u32(_data, _size, its_array_length);
159 if (its_result == false)
160 return false;
161
162 while (0 < its_array_length) {
163 uint32_t its_current_size(_size);
164
165 boost::icl::interval_set<uint16_t> its_instances, its_methods;
166 its_result = deserialize_id_item_list(_data, _size, its_instances);
167 if (its_result == false)
168 return false;
169
170 its_result = deserialize_id_item_list(_data, _size, its_methods);
171 if (its_result == false)
172 return false;
173
174 for (const auto& i : its_instances)
175 its_ids += std::make_pair(i, its_methods);
176
177 its_array_length -= (its_current_size - _size);
178 }
179
180 _ids = std::move(its_ids);
181
182 return true;
183}
184
185bool policy::deserialize_id_item_list(const byte_t*& _data, uint32_t& _size, boost::icl::interval_set<uint16_t>& _intervals) const {
186

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected