ad_rss_map_integration
RssObjectInstance.hpp
Go to the documentation of this file.
1 // ----------------- BEGIN LICENSE BLOCK ---------------------------------
2 //
3 // Copyright (C) 2019-2021 Intel Corporation
4 //
5 // SPDX-License-Identifier: LGPL-2.1-only
6 //
7 // ----------------- END LICENSE BLOCK -----------------------------------
12 #pragma once
13 
14 #include <ad/rss/world/ObjectType.hpp>
15 
19 namespace ad {
23 namespace rss {
27 namespace map {
28 
30 template <class OBJECT_INSTANCE_TYPE> class RssRouteCheckerControl;
31 
34 template <class OBJECT_INSTANCE_TYPE> class RssObjectInstance
35 {
36 public:
40  typedef std::shared_ptr<RssObjectInstance> Ptr;
41 
45  typedef std::shared_ptr<RssObjectInstance const> ConstPtr;
46 
47  using RssRouteCheckerControlPtr = std::shared_ptr<RssRouteCheckerControl<OBJECT_INSTANCE_TYPE>>;
48 
49  RssObjectInstance(OBJECT_INSTANCE_TYPE const &objectInstanceType, RssRouteCheckerControlPtr checkerControl)
50  : mObjectInstanceType(objectInstanceType)
51  , mCheckerControl(checkerControl)
52  {
53  }
54 
59  virtual ::ad::rss::world::ObjectType getObjectType() const = 0;
60 
62  OBJECT_INSTANCE_TYPE &getObjectInstanceType()
63  {
64  return mObjectInstanceType;
65  }
66 
68  OBJECT_INSTANCE_TYPE const &getObjectInstanceType() const
69  {
70  return mObjectInstanceType;
71  }
72 
73  RssRouteCheckerControlPtr getCheckerControl() const
74  {
75  return mCheckerControl;
76  }
77 
78 protected:
79  OBJECT_INSTANCE_TYPE mObjectInstanceType;
80  RssRouteCheckerControlPtr mCheckerControl;
81 };
82 
83 } // namespace map
84 } // namespace rss
85 } // namespace ad
base type of an object instance
Definition: RssObjectInstance.hpp:35
std::shared_ptr< RssObjectInstance const > ConstPtr
Smart pointer on constant RssObjectAdapter.
Definition: RssObjectInstance.hpp:45
OBJECT_INSTANCE_TYPE & getObjectInstanceType()
get the underlying vehicle instance
Definition: RssObjectInstance.hpp:62
OBJECT_INSTANCE_TYPE const & getObjectInstanceType() const
get the underlying vehicle instance
Definition: RssObjectInstance.hpp:68
virtual ::ad::rss::world::ObjectType getObjectType() const =0
std::shared_ptr< RssObjectInstance > Ptr
Smart pointer on RssObjectAdapter.
Definition: RssObjectInstance.hpp:40
namespace ad
Definition: RouteAccelerations.hpp:33