#pragma once #include #include "SimCore/Identifier.hpp" #include "SimCore/Messages/SimTrack.hpp" #include #include #include #include #include namespace TrackList { class Trackfusion { public: /** * @brief adds or updates track * * @param track shared pointer of a simtrack * @param sensorData */ void addOrUpdateTrack(std::shared_ptr track,std::shared_ptr sensorData); /** * @brief deltets a track based on a SimCore::Identifier * */ void deleteTrack(SimCore::Identifier id); /** * @brief deletes a track based on a string uuid * * @param UUID */ void deleteTrack(std::string UUID); /** * @brief Get the Tracklist As String * * @return std::string */ std::string getTracklistAsString(); /** * @brief retruns a shared pointer of a track * * @param id * @return std::shared_ptr */ std::shared_ptr findTrack(SimCore::Identifier id); /** * @brief returns a shared pointer of a track * * @param UUID * @return std::shared_ptr */ std::shared_ptr findTrack(std::string UUID); /** * @brief Get the Track List Update object * * @return std::unique_ptr */ std::unique_ptr getTrackListUpdate(SimCore::Identifier ID); private: mutable std::mutex mx_; std::unordered_map> TrackStore_; }; }