#pragma once #include #include #include #include #include #include #if defined(__clang__) # pragma clang diagnostic push # pragma clang diagnostic ignored "-Wunused-parameter" #endif #include #if defined(__clang__) # pragma clang diagnostic pop #endif namespace scwx { namespace awips { class CodedTimeMotionLocationImpl; class CodedTimeMotionLocation { public: typedef boost::any_range StringRange; explicit CodedTimeMotionLocation(); ~CodedTimeMotionLocation(); CodedTimeMotionLocation(const CodedTimeMotionLocation&) = delete; CodedTimeMotionLocation& operator=(const CodedTimeMotionLocation&) = delete; CodedTimeMotionLocation(CodedTimeMotionLocation&&) noexcept; CodedTimeMotionLocation& operator=(CodedTimeMotionLocation&&) noexcept; std::chrono::hh_mm_ss time() const; uint16_t direction() const; uint8_t speed() const; std::vector coordinates() const; bool Parse(const StringRange& lines, const std::string& wfo = {}); static std::optional Create(const StringRange& lines, const std::string& wfo = {}); private: std::unique_ptr p; }; } // namespace awips } // namespace scwx