ad_rss_map_integration
RssObjectResultListAnalyzer.hpp
1 // ----------------- BEGIN LICENSE BLOCK ---------------------------------
2 //
3 // Copyright (C) 2021 Intel Corporation
4 //
5 // SPDX-License-Identifier: LGPL-2.1-only
6 //
7 // ----------------- END LICENSE BLOCK -----------------------------------
8 
10 #include <map>
11 #include <set>
12 
16 namespace ad {
20 namespace rss {
24 namespace map {
25 
27 {
28 public:
29  RssObjectResultListAnalyzer() = default;
30 
31  enum class RouteSelectionMode
32  {
33  FirstUnsafeRoute,
34  LastUnsafeRoute
35  };
36  void setRouteSelectionMode(RouteSelectionMode route_selection_mode)
37  {
38  route_selection_mode_ = route_selection_mode;
39  }
40  RouteSelectionMode getRouteSelectionMode()
41  {
42  return route_selection_mode_;
43  }
44 
45  std::set<ad::rss::world::ObjectId> getAvailableObjects() const;
46  std::set<ad::rss::world::ObjectId> getAvailableEgoObjects() const;
47 
48  void updateRssObjectResultList(std::shared_ptr<ad::rss::map::RssObjectResultList> rss_object_result_list);
49 
50  ad::rss::map::RssObjectData::ConstPtr getObjectData(ad::rss::world::ObjectId const &object_id) const;
51 
53  getSelectedRouteCheckResult(ad::rss::world::ObjectId const &ego_object_id) const;
54 
55  ad::rss::map::RssRouteId getCurrentRouteId(ad::rss::world::ObjectId const &ego_object_id) const;
56  std::set<ad::rss::map::RssRouteId> getAvailableRoutes(ad::rss::world::ObjectId const &ego_object_id) const;
57  bool isRouteAvailable(ad::rss::world::ObjectId const &ego_object_id, ad::rss::map::RssRouteId const &route_id) const;
58 
59 private:
60  std::shared_ptr<ad::rss::map::RssObjectResultList> rss_object_result_list_;
61 
62  RouteSelectionMode route_selection_mode_{RouteSelectionMode::FirstUnsafeRoute};
63 
64  std::set<ad::rss::world::ObjectId> available_ego_objects_;
65  std::set<ad::rss::world::ObjectId> available_objects_;
66  std::map<ad::rss::world::ObjectId, std::map<ad::rss::map::RssRouteId, bool>> is_safe_map_;
67  std::map<ad::rss::world::ObjectId, ad::rss::map::RssRouteCheckResult::ConstPtr> selected_route_map_;
68  std::map<ad::rss::world::ObjectId, ad::rss::map::RssObjectData::ConstPtr> object_data_map_;
69 };
70 
71 } // namespace map
72 } // namespace rss
73 } // namespace ad
Definition: RssObjectResultListAnalyzer.hpp:27
uint64_t RssRouteId
DataType RssRouteId.
Definition: RssRouteId.hpp:39
namespace ad
Definition: RouteAccelerations.hpp:33
std::shared_ptr< RssObjectData const > ConstPtr
Smart pointer on constant RssObjectData.
Definition: RssObjectData.hpp:61
std::shared_ptr< RssRouteCheckResult const > ConstPtr
Smart pointer on constant RssRouteCheckResult.
Definition: RssRouteCheckResult.hpp:57