supercell-wx/scwx-qt/source/scwx/qt/config/radar_site.hpp
Dan Paulat 6e7a13494a Updating radar site display fields to be more human-friendly
- Latitude/longitude in degrees N/S/E/W
- Radar types with hyphens
- Sort by raw decimal values
2022-10-07 22:29:30 -05:00

52 lines
1.1 KiB
C++

#pragma once
#include <memory>
#include <string>
#include <vector>
namespace scwx
{
namespace qt
{
namespace config
{
class RadarSiteImpl;
class RadarSite
{
public:
explicit RadarSite();
~RadarSite();
RadarSite(const RadarSite&) = delete;
RadarSite& operator=(const RadarSite&) = delete;
RadarSite(RadarSite&&) noexcept;
RadarSite& operator=(RadarSite&&) noexcept;
std::string type() const;
std::string type_name() const;
std::string id() const;
double latitude() const;
double longitude() const;
std::string country() const;
std::string state() const;
std::string place() const;
std::string location_name() const;
static std::shared_ptr<RadarSite> Get(const std::string& id);
static std::vector<std::shared_ptr<RadarSite>> GetAll();
static void Initialize();
static size_t ReadConfig(const std::string& path);
private:
std::unique_ptr<RadarSiteImpl> p;
};
std::string GetRadarIdFromSiteId(const std::string& siteId);
} // namespace config
} // namespace qt
} // namespace scwx