ad_map_access
SerializeGeneratedRestrictionTypes.hpp
Go to the documentation of this file.
1 // ----------------- BEGIN LICENSE BLOCK ---------------------------------
2 //
3 // Copyright (C) 2018-2021 Intel Corporation
4 //
5 // SPDX-License-Identifier: MIT
6 //
7 // ----------------- END LICENSE BLOCK -----------------------------------
12 #pragma once
13 
17 
19 namespace ad {
21 namespace map {
23 namespace serialize {
24 
28 inline bool doSerialize(ISerializer &serializer, restriction::PassengerCount &x)
29 {
30  return serializer.serializeGeneratedType<restriction::PassengerCount, uint16_t, SerializeableMagic::PassengerCount>(
31  x);
32 }
33 
37 inline bool doSerialize(ISerializer &serializer, restriction::Restriction &x)
38 {
39  return serializer.serialize(SerializeableMagic::Restriction) && serializer.serialize(x.negated)
40  && doSerialize(serializer, x.passengersMin) && serializer.serializeVector(x.roadUserTypes);
41 }
42 
46 inline bool doSerialize(ISerializer &serializer, restriction::Restrictions &x)
47 {
48  return serializer.serialize(SerializeableMagic::Restrictions)
49  //@todo: special serializable magic for backward compatibility
50  && serializer.serializeObjectVector(x.conjunctions, SerializeableMagic::ObjectPtrVectorType)
51  && serializer.serializeObjectVector(x.disjunctions, SerializeableMagic::ObjectPtrVectorType);
52 }
53 
57 inline bool doSerialize(ISerializer &serializer, restriction::SpeedLimit &x)
58 {
59  bool ok = serializer.serialize(SerializeableMagic::SpeedLimit) && doSerialize(serializer, x.speedLimit)
60  && doSerialize(serializer, x.lanePiece);
61 
62  if (ok)
63  {
64  // speed limits have to be actually positive!
65  if (x.speedLimit <= physics::Speed(0.))
66  {
67  x.speedLimit = std::numeric_limits<physics::Speed>::max();
68  }
69  }
70  return ok;
71 }
72 
73 } // namespace serialize
74 } // namespace map
75 } // namespace ad
ad
namespace ad
Definition: GeometryStoreItem.hpp:28
ad::map::serialize::ISerializer
Interface for Serializer.
Definition: ISerializer.hpp:34
ISerializer.hpp
ad::map::restriction::Restrictions
DataType Restrictions.
Definition: Restrictions.hpp:42
ad::map::restriction::Restriction
DataType Restriction.
Definition: Restriction.hpp:44
SerializeGeneratedPhysicsTypes.hpp
ad::map::restriction::SpeedLimit
DataType SpeedLimit.
Definition: SpeedLimit.hpp:44
Types.hpp
ad::map::restriction::PassengerCount
uint16_t PassengerCount
DataType PassengerCount.
Definition: PassengerCount.hpp:39