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

Method serialize

implementation/security/src/policy.cpp:281–323  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

279}
280
281bool policy::serialize(std::vector<byte_t>& _data) const {
282
283 bool its_result;
284
285 std::scoped_lock its_lock(mutex_);
286
287 its_result = serialize_uid_gid(_data);
288 if (!its_result)
289 return false;
290
291 size_t its_requests_pos = _data.size();
292 uint32_t its_requests_size(0);
293 serialize_u32(its_requests_size, _data);
294
295 for (const auto& its_request : requests_) {
296 for (auto its_service = its_request.first.lower(); its_service <= its_request.first.upper(); its_service++) {
297
298 serialize_u16(its_service, _data);
299
300 size_t its_pos = _data.size();
301 uint32_t its_instances_size(0);
302 serialize_u32(its_instances_size, _data);
303
304 for (const auto& i : its_request.second) {
305 boost::icl::interval_set<instance_t> its_instances;
306 its_instances.insert(i.first);
307 serialize_interval_set(its_instances, _data);
308 serialize_interval_set(i.second, _data);
309 }
310
311 its_instances_size = static_cast<uint32_t>(_data.size() - its_pos - sizeof(uint32_t));
312 serialize_u32_at(its_instances_size, _data, its_pos);
313 }
314 }
315
316 its_requests_size = static_cast<uint32_t>(_data.size() - its_requests_pos - sizeof(uint32_t));
317 serialize_u32_at(its_requests_size, _data, its_requests_pos);
318
319 uint32_t its_offers_size = 0;
320 serialize_u32(its_offers_size, _data);
321
322 return true;
323}
324
325bool policy::serialize_uid_gid(std::vector<byte_t>& _data) const {
326

Callers 15

old_to_wireFunction · 0.45
TESTFunction · 0.45
TESTFunction · 0.45
TESTFunction · 0.45
TESTFunction · 0.45
TESTFunction · 0.45
create_fragmentsMethod · 0.45
construct_subscriptionFunction · 0.45
construct_offerFunction · 0.45

Calls 2

insertMethod · 0.80
sizeMethod · 0.45

Tested by 3

create_fragmentsMethod · 0.36