From e54ef272845619294cb5aef181ade9a99f117601 Mon Sep 17 00:00:00 2001 From: jvallve <jvallve@iri.upc.edu> Date: Thu, 7 Apr 2022 12:42:54 +0200 Subject: [PATCH] getLists return via copy (thread safer) --- include/core/capture/capture_base.h | 16 ++++++++-------- include/core/feature/feature_base.h | 22 ++++++++++++++++------ include/core/frame/frame_base.h | 16 ++++++++-------- include/core/hardware/hardware_base.h | 8 ++++---- include/core/landmark/landmark_base.h | 8 ++++---- include/core/map/map_base.h | 8 ++++---- include/core/sensor/sensor_base.h | 8 ++++---- include/core/trajectory/trajectory_base.h | 8 ++++---- src/feature/feature_base.cpp | 10 ---------- 9 files changed, 52 insertions(+), 52 deletions(-) diff --git a/include/core/capture/capture_base.h b/include/core/capture/capture_base.h index ccde83ed3..1c2f80ab6 100644 --- a/include/core/capture/capture_base.h +++ b/include/core/capture/capture_base.h @@ -88,8 +88,8 @@ class CaptureBase : public NodeBase, public HasStateBlocks, public std::enable_s void setFrame(const FrameBasePtr _frm_ptr); public: - const FeatureBaseConstPtrList& getFeatureList() const; - const FeatureBasePtrList& getFeatureList(); + FeatureBaseConstPtrList getFeatureList() const; + FeatureBasePtrList getFeatureList(); FactorBaseConstPtrList getFactorList() const; FactorBasePtrList getFactorList(); @@ -107,8 +107,8 @@ class CaptureBase : public NodeBase, public HasStateBlocks, public std::enable_s public: unsigned int getHits() const; - const FactorBaseConstPtrList& getConstrainedByList() const; - const FactorBasePtrList& getConstrainedByList(); + FactorBaseConstPtrList getConstrainedByList() const; + FactorBasePtrList getConstrainedByList(); bool isConstrainedBy(const FactorBaseConstPtr &_factor) const; // State blocks @@ -222,12 +222,12 @@ inline void CaptureBase::setFrame(const FrameBasePtr _frm_ptr) frame_ptr_ = _frm_ptr; } -inline const FeatureBaseConstPtrList& CaptureBase::getFeatureList() const +inline FeatureBaseConstPtrList CaptureBase::getFeatureList() const { return feature_const_list_; } -inline const FeatureBasePtrList& CaptureBase::getFeatureList() +inline FeatureBasePtrList CaptureBase::getFeatureList() { return feature_list_; } @@ -237,12 +237,12 @@ inline unsigned int CaptureBase::getHits() const return constrained_by_list_.size(); } -inline const FactorBaseConstPtrList& CaptureBase::getConstrainedByList() const +inline FactorBaseConstPtrList CaptureBase::getConstrainedByList() const { return constrained_by_const_list_; } -inline const FactorBasePtrList& CaptureBase::getConstrainedByList() +inline FactorBasePtrList CaptureBase::getConstrainedByList() { return constrained_by_list_; } diff --git a/include/core/feature/feature_base.h b/include/core/feature/feature_base.h index 76154db50..3e7d29310 100644 --- a/include/core/feature/feature_base.h +++ b/include/core/feature/feature_base.h @@ -124,14 +124,14 @@ class FeatureBase : public NodeBase, public std::enable_shared_from_this<Feature CaptureBaseConstPtr getCapture() const; CaptureBasePtr getCapture(); - const FactorBaseConstPtrList& getFactorList() const; - const FactorBasePtrList& getFactorList(); + FactorBaseConstPtrList getFactorList() const; + FactorBasePtrList getFactorList(); void getFactorList(FactorBaseConstPtrList & _fac_list) const; void getFactorList(FactorBasePtrList & _fac_list); unsigned int getHits() const; - const FactorBaseConstPtrList& getConstrainedByList() const; - const FactorBasePtrList& getConstrainedByList(); + FactorBaseConstPtrList getConstrainedByList() const; + FactorBasePtrList getConstrainedByList(); bool isConstrainedBy(const FactorBaseConstPtr &_factor) const; void link(CaptureBasePtr cap_ptr); @@ -183,12 +183,22 @@ inline unsigned int FeatureBase::getHits() const return constrained_by_list_.size(); } -inline const FactorBaseConstPtrList& FeatureBase::getConstrainedByList() const +inline FactorBaseConstPtrList FeatureBase::getFactorList() const +{ + return factor_const_list_; +} + +inline FactorBasePtrList FeatureBase::getFactorList() +{ + return factor_list_; +} + +inline FactorBaseConstPtrList FeatureBase::getConstrainedByList() const { return constrained_by_const_list_; } -inline const FactorBasePtrList& FeatureBase::getConstrainedByList() +inline FactorBasePtrList FeatureBase::getConstrainedByList() { return constrained_by_list_; } diff --git a/include/core/frame/frame_base.h b/include/core/frame/frame_base.h index a228317ff..9050ea320 100644 --- a/include/core/frame/frame_base.h +++ b/include/core/frame/frame_base.h @@ -127,16 +127,16 @@ class FrameBase : public NodeBase, public HasStateBlocks, public std::enable_sha FrameBasePtr getPreviousFrame(); FrameBasePtr getNextFrame(); - const CaptureBaseConstPtrList& getCaptureList() const; - const CaptureBasePtrList& getCaptureList(); + CaptureBaseConstPtrList getCaptureList() const; + CaptureBasePtrList getCaptureList(); FactorBaseConstPtrList getFactorList() const; FactorBasePtrList getFactorList(); void getFactorList(FactorBaseConstPtrList& _fac_list) const; void getFactorList(FactorBasePtrList& _fac_list); - const FactorBaseConstPtrList& getConstrainedByList() const; - const FactorBasePtrList& getConstrainedByList(); + FactorBaseConstPtrList getConstrainedByList() const; + FactorBasePtrList getConstrainedByList(); bool isConstrainedBy(const FactorBaseConstPtr& _factor) const; template <class C> @@ -254,12 +254,12 @@ inline TrajectoryBasePtr FrameBase::getTrajectory() return trajectory_ptr_.lock(); } -inline const CaptureBaseConstPtrList& FrameBase::getCaptureList() const +inline CaptureBaseConstPtrList FrameBase::getCaptureList() const { return capture_const_list_; } -inline const CaptureBasePtrList& FrameBase::getCaptureList() +inline CaptureBasePtrList FrameBase::getCaptureList() { return capture_list_; } @@ -269,12 +269,12 @@ inline unsigned int FrameBase::getHits() const return constrained_by_list_.size(); } -inline const FactorBaseConstPtrList& FrameBase::getConstrainedByList() const +inline FactorBaseConstPtrList FrameBase::getConstrainedByList() const { return constrained_by_const_list_; } -inline const FactorBasePtrList& FrameBase::getConstrainedByList() +inline FactorBasePtrList FrameBase::getConstrainedByList() { return constrained_by_list_; } diff --git a/include/core/hardware/hardware_base.h b/include/core/hardware/hardware_base.h index 3dc69962c..88d72e221 100644 --- a/include/core/hardware/hardware_base.h +++ b/include/core/hardware/hardware_base.h @@ -47,8 +47,8 @@ class HardwareBase : public NodeBase, public std::enable_shared_from_this<Hardwa HardwareBase(); ~HardwareBase() override; - const SensorBaseConstPtrList& getSensorList() const; - const SensorBasePtrList& getSensorList(); + SensorBaseConstPtrList getSensorList() const; + SensorBasePtrList getSensorList(); virtual void printHeader(int depth, // bool constr_by, // @@ -76,12 +76,12 @@ class HardwareBase : public NodeBase, public std::enable_shared_from_this<Hardwa namespace wolf { -inline const SensorBaseConstPtrList& HardwareBase::getSensorList() const +inline SensorBaseConstPtrList HardwareBase::getSensorList() const { return sensor_const_list_; } -inline const SensorBasePtrList& HardwareBase::getSensorList() +inline SensorBasePtrList HardwareBase::getSensorList() { return sensor_list_; } diff --git a/include/core/landmark/landmark_base.h b/include/core/landmark/landmark_base.h index bd8056f45..34aefb07e 100644 --- a/include/core/landmark/landmark_base.h +++ b/include/core/landmark/landmark_base.h @@ -93,8 +93,8 @@ class LandmarkBase : public NodeBase, public HasStateBlocks, public std::enable_ void setDescriptor(const Eigen::VectorXd& _descriptor); unsigned int getHits() const; - const FactorBaseConstPtrList& getConstrainedByList() const; - const FactorBasePtrList& getConstrainedByList(); + FactorBaseConstPtrList getConstrainedByList() const; + FactorBasePtrList getConstrainedByList(); bool isConstrainedBy(const FactorBaseConstPtr &_factor) const; MapBaseConstPtr getMap() const; @@ -182,12 +182,12 @@ inline unsigned int LandmarkBase::getHits() const return constrained_by_list_.size(); } -inline const FactorBaseConstPtrList& LandmarkBase::getConstrainedByList() const +inline FactorBaseConstPtrList LandmarkBase::getConstrainedByList() const { return constrained_by_const_list_; } -inline const FactorBasePtrList& LandmarkBase::getConstrainedByList() +inline FactorBasePtrList LandmarkBase::getConstrainedByList() { return constrained_by_list_; } diff --git a/include/core/map/map_base.h b/include/core/map/map_base.h index 9c32c1411..ae680c3e7 100644 --- a/include/core/map/map_base.h +++ b/include/core/map/map_base.h @@ -112,8 +112,8 @@ class MapBase : public NodeBase, public std::enable_shared_from_this<MapBase> virtual void removeLandmark(LandmarkBasePtr _landmark_ptr); public: - const LandmarkBaseConstPtrList& getLandmarkList() const; - const LandmarkBasePtrList& getLandmarkList(); + LandmarkBaseConstPtrList getLandmarkList() const; + LandmarkBasePtrList getLandmarkList(); void load(const std::string& _map_file_yaml); void save(const std::string& _map_file_yaml, const std::string& _map_name = "Map automatically saved by Wolf"); @@ -138,12 +138,12 @@ class MapBase : public NodeBase, public std::enable_shared_from_this<MapBase> std::string dateTimeNow(); }; -inline const LandmarkBaseConstPtrList& MapBase::getLandmarkList() const +inline LandmarkBaseConstPtrList MapBase::getLandmarkList() const { return landmark_const_list_; } -inline const LandmarkBasePtrList& MapBase::getLandmarkList() +inline LandmarkBasePtrList MapBase::getLandmarkList() { return landmark_list_; } diff --git a/include/core/sensor/sensor_base.h b/include/core/sensor/sensor_base.h index 33b1cafbd..2ab79c9ee 100644 --- a/include/core/sensor/sensor_base.h +++ b/include/core/sensor/sensor_base.h @@ -184,8 +184,8 @@ class SensorBase : public NodeBase, public HasStateBlocks, public std::enable_sh void removeProcessor(ProcessorBasePtr _proc_ptr); public: - const ProcessorBaseConstPtrList& getProcessorList() const; - const ProcessorBasePtrList& getProcessorList(); + ProcessorBaseConstPtrList getProcessorList() const; + ProcessorBasePtrList getProcessorList(); CaptureBaseConstPtr getLastCapture() const; CaptureBasePtr getLastCapture(); @@ -315,12 +315,12 @@ inline unsigned int SensorBase::id() const return sensor_id_; } -inline const ProcessorBaseConstPtrList& SensorBase::getProcessorList() const +inline ProcessorBaseConstPtrList SensorBase::getProcessorList() const { return processor_const_list_; } -inline const ProcessorBasePtrList& SensorBase::getProcessorList() +inline ProcessorBasePtrList SensorBase::getProcessorList() { return processor_list_; } diff --git a/include/core/trajectory/trajectory_base.h b/include/core/trajectory/trajectory_base.h index 5c1cf5799..ffdcfe323 100644 --- a/include/core/trajectory/trajectory_base.h +++ b/include/core/trajectory/trajectory_base.h @@ -53,8 +53,8 @@ class TrajectoryBase : public NodeBase, public std::enable_shared_from_this<Traj ~TrajectoryBase() override; // Frames - const FrameConstPtrMap& getFrameMap() const; - const FramePtrMap& getFrameMap(); + FrameConstPtrMap getFrameMap() const; + FramePtrMap getFrameMap(); FrameBaseConstPtr getLastFrame() const; FrameBasePtr getLastFrame(); FrameBaseConstPtr getFirstFrame() const; @@ -88,12 +88,12 @@ class TrajectoryBase : public NodeBase, public std::enable_shared_from_this<Traj void getFactorList(FactorBasePtrList & _fac_list); }; -inline const FrameConstPtrMap& TrajectoryBase::getFrameMap() const +inline FrameConstPtrMap TrajectoryBase::getFrameMap() const { return frame_const_map_; } -inline const FramePtrMap& TrajectoryBase::getFrameMap() +inline FramePtrMap TrajectoryBase::getFrameMap() { return frame_map_; } diff --git a/src/feature/feature_base.cpp b/src/feature/feature_base.cpp index f81cff702..09971a9f9 100644 --- a/src/feature/feature_base.cpp +++ b/src/feature/feature_base.cpp @@ -134,16 +134,6 @@ bool FeatureBase::isConstrainedBy(const FactorBaseConstPtr &_factor) const _factor) != constrained_by_const_list_.end(); } -const FactorBaseConstPtrList& FeatureBase::getFactorList() const -{ - return factor_const_list_; -} - -const FactorBasePtrList& FeatureBase::getFactorList() -{ - return factor_list_; -} - void FeatureBase::getFactorList(FactorBaseConstPtrList & _fac_list) const { _fac_list.insert(_fac_list.end(), factor_const_list_.begin(), factor_const_list_.end()); -- GitLab