diff --git a/scwx-qt/source/scwx/qt/manager/radar_product_manager.cpp b/scwx-qt/source/scwx/qt/manager/radar_product_manager.cpp index f564ac96..1497bcf0 100644 --- a/scwx-qt/source/scwx/qt/manager/radar_product_manager.cpp +++ b/scwx-qt/source/scwx/qt/manager/radar_product_manager.cpp @@ -398,7 +398,7 @@ RadarProductManagerImpl::StoreRadarProductRecord( } else if (record->radar_product_group() == common::RadarProductGroup::Level3) { - auto productMap = level3ProductRecords_[record->radar_product()]; + auto& productMap = level3ProductRecords_[record->radar_product()]; auto it = productMap.find(record->time()); if (it != productMap.cend()) @@ -442,6 +442,23 @@ RadarProductManager::GetLevel2Data(wsr88d::rda::DataBlockType dataBlockType, return std::tie(radarData, elevationCut, elevationCuts); } +std::shared_ptr +RadarProductManager::GetLevel3Data(const std::string& product, + std::chrono::system_clock::time_point time) +{ + std::shared_ptr message = nullptr; + + std::shared_ptr record = + p->GetLevel3ProductRecord(product, time); + + if (record != nullptr) + { + message = record->level3_file()->message(); + } + + return message; +} + std::shared_ptr RadarProductManager::Instance(const std::string& radarSite) { diff --git a/scwx-qt/source/scwx/qt/manager/radar_product_manager.hpp b/scwx-qt/source/scwx/qt/manager/radar_product_manager.hpp index 79774dea..fa73c810 100644 --- a/scwx-qt/source/scwx/qt/manager/radar_product_manager.hpp +++ b/scwx-qt/source/scwx/qt/manager/radar_product_manager.hpp @@ -41,6 +41,10 @@ public: float elevation, std::chrono::system_clock::time_point time = {}); + std::shared_ptr + GetLevel3Data(const std::string& product, + std::chrono::system_clock::time_point time = {}); + static std::shared_ptr Instance(const std::string& radarSite);