From 078b9c407cf6c616dd25a1b9ce8e7afe0e002f89 Mon Sep 17 00:00:00 2001 From: Dan Paulat Date: Fri, 27 May 2022 16:28:20 -0500 Subject: [PATCH] Adding level 2 data provider to product manager --- .../scwx/qt/manager/radar_product_manager.cpp | 7 ++++- .../provider/level2_data_provider_factory.hpp | 29 +++++++++++++++++++ .../provider/level2_data_provider_factory.cpp | 28 ++++++++++++++++++ wxdata/wxdata.cmake | 6 ++-- 4 files changed, 67 insertions(+), 3 deletions(-) create mode 100644 wxdata/include/scwx/provider/level2_data_provider_factory.hpp create mode 100644 wxdata/source/scwx/provider/level2_data_provider_factory.cpp 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 970993d8..5ef36853 100644 --- a/scwx-qt/source/scwx/qt/manager/radar_product_manager.cpp +++ b/scwx-qt/source/scwx/qt/manager/radar_product_manager.cpp @@ -1,5 +1,6 @@ #include #include +#include #include #include #include @@ -57,7 +58,9 @@ public: explicit RadarProductManagerImpl(const std::string& radarId) : radarId_ {radarId}, initialized_ {false}, - radarSite_ {config::RadarSite::Get(radarId)} + radarSite_ {config::RadarSite::Get(radarId)}, + level2DataProvider_ { + provider::Level2DataProviderFactory::Create(radarId)} { if (radarSite_ == nullptr) { @@ -89,6 +92,8 @@ public: RadarProductRecordMap level2ProductRecords_; std::unordered_map level3ProductRecords_; + + std::shared_ptr level2DataProvider_; }; RadarProductManager::RadarProductManager(const std::string& radarId) : diff --git a/wxdata/include/scwx/provider/level2_data_provider_factory.hpp b/wxdata/include/scwx/provider/level2_data_provider_factory.hpp new file mode 100644 index 00000000..5061933f --- /dev/null +++ b/wxdata/include/scwx/provider/level2_data_provider_factory.hpp @@ -0,0 +1,29 @@ +#pragma once + +#include + +#include + +namespace scwx +{ +namespace provider +{ + +class Level2DataProviderFactory +{ +private: + explicit Level2DataProviderFactory() = delete; + ~Level2DataProviderFactory() = delete; + + Level2DataProviderFactory(const Level2DataProviderFactory&) = delete; + Level2DataProviderFactory& operator=(const Level2DataProviderFactory&) = delete; + + Level2DataProviderFactory(Level2DataProviderFactory&&) noexcept = delete; + Level2DataProviderFactory& operator=(Level2DataProviderFactory&&) noexcept = delete; + +public: + static std::shared_ptr Create(const std::string& radarSite); +}; + +} // namespace provider +} // namespace scwx diff --git a/wxdata/source/scwx/provider/level2_data_provider_factory.cpp b/wxdata/source/scwx/provider/level2_data_provider_factory.cpp new file mode 100644 index 00000000..3b04badb --- /dev/null +++ b/wxdata/source/scwx/provider/level2_data_provider_factory.cpp @@ -0,0 +1,28 @@ +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace scwx +{ +namespace provider +{ + +static const std::string logPrefix_ = + "scwx::provider::level2_data_provider_factory"; + +std::shared_ptr +Level2DataProviderFactory::Create(const std::string& radarSite) +{ + return std::make_unique(radarSite); +} + +} // namespace provider +} // namespace scwx diff --git a/wxdata/wxdata.cmake b/wxdata/wxdata.cmake index ebe5f0e5..50a40872 100644 --- a/wxdata/wxdata.cmake +++ b/wxdata/wxdata.cmake @@ -35,9 +35,11 @@ set(SRC_COMMON source/scwx/common/color_table.cpp source/scwx/common/sites.cpp source/scwx/common/vcp.cpp) set(HDR_PROVIDER include/scwx/provider/aws_level2_data_provider.hpp - include/scwx/provider/level2_data_provider.hpp) + include/scwx/provider/level2_data_provider.hpp + include/scwx/provider/level2_data_provider_factory.hpp) set(SRC_PROVIDER source/scwx/provider/aws_level2_data_provider.cpp - source/scwx/provider/level2_data_provider.cpp) + source/scwx/provider/level2_data_provider.cpp + source/scwx/provider/level2_data_provider_factory.cpp) set(HDR_UTIL include/scwx/util/float.hpp include/scwx/util/iterator.hpp include/scwx/util/logger.hpp