From 895e760fee524d40896ab6bc9ecdee2112c0595b Mon Sep 17 00:00:00 2001 From: Dan Paulat Date: Sat, 1 Feb 2025 15:50:28 -0600 Subject: [PATCH] Create IemWarningsProvider class for archive warnings --- .../scwx/provider/iem_warnings_provider.hpp | 28 ++++++++++++++++++ .../scwx/provider/iem_warnings_provider.cpp | 29 +++++++++++++++++++ wxdata/wxdata.cmake | 2 ++ 3 files changed, 59 insertions(+) create mode 100644 wxdata/include/scwx/provider/iem_warnings_provider.hpp create mode 100644 wxdata/source/scwx/provider/iem_warnings_provider.cpp diff --git a/wxdata/include/scwx/provider/iem_warnings_provider.hpp b/wxdata/include/scwx/provider/iem_warnings_provider.hpp new file mode 100644 index 00000000..64c5e96f --- /dev/null +++ b/wxdata/include/scwx/provider/iem_warnings_provider.hpp @@ -0,0 +1,28 @@ +#pragma once + +#include + +namespace scwx::provider +{ + +/** + * @brief Warnings Provider + */ +class IemWarningsProvider +{ +public: + explicit IemWarningsProvider(); + ~IemWarningsProvider(); + + IemWarningsProvider(const IemWarningsProvider&) = delete; + IemWarningsProvider& operator=(const IemWarningsProvider&) = delete; + + IemWarningsProvider(IemWarningsProvider&&) noexcept; + IemWarningsProvider& operator=(IemWarningsProvider&&) noexcept; + +private: + class Impl; + std::unique_ptr p; +}; + +} // namespace scwx::provider diff --git a/wxdata/source/scwx/provider/iem_warnings_provider.cpp b/wxdata/source/scwx/provider/iem_warnings_provider.cpp new file mode 100644 index 00000000..7c780816 --- /dev/null +++ b/wxdata/source/scwx/provider/iem_warnings_provider.cpp @@ -0,0 +1,29 @@ +#include +#include + +namespace scwx::provider +{ + +static const std::string logPrefix_ = "scwx::provider::iem_warnings_provider"; +static const auto logger_ = util::Logger::Create(logPrefix_); + +class IemWarningsProvider::Impl +{ +public: + explicit Impl() = default; + ~Impl() = default; + Impl(const Impl&) = delete; + Impl& operator=(const Impl&) = delete; + Impl(const Impl&&) = delete; + Impl& operator=(const Impl&&) = delete; +}; + +IemWarningsProvider::IemWarningsProvider() : p(std::make_unique()) {} +IemWarningsProvider::~IemWarningsProvider() = default; + +IemWarningsProvider::IemWarningsProvider(IemWarningsProvider&&) noexcept = + default; +IemWarningsProvider& +IemWarningsProvider::operator=(IemWarningsProvider&&) noexcept = default; + +} // namespace scwx::provider diff --git a/wxdata/wxdata.cmake b/wxdata/wxdata.cmake index 94b0e3a7..77e65c58 100644 --- a/wxdata/wxdata.cmake +++ b/wxdata/wxdata.cmake @@ -61,12 +61,14 @@ set(SRC_NETWORK source/scwx/network/cpr.cpp set(HDR_PROVIDER include/scwx/provider/aws_level2_data_provider.hpp include/scwx/provider/aws_level3_data_provider.hpp include/scwx/provider/aws_nexrad_data_provider.hpp + include/scwx/provider/iem_warnings_provider.hpp include/scwx/provider/nexrad_data_provider.hpp include/scwx/provider/nexrad_data_provider_factory.hpp include/scwx/provider/warnings_provider.hpp) set(SRC_PROVIDER source/scwx/provider/aws_level2_data_provider.cpp source/scwx/provider/aws_level3_data_provider.cpp source/scwx/provider/aws_nexrad_data_provider.cpp + source/scwx/provider/iem_warnings_provider.cpp source/scwx/provider/nexrad_data_provider.cpp source/scwx/provider/nexrad_data_provider_factory.cpp source/scwx/provider/warnings_provider.cpp)