#pragma once #include #include #include #include #include namespace scwx { namespace wsr88d { class Level3FileImpl; class Level3File : public NexradFile { public: explicit Level3File(); ~Level3File(); Level3File(const Level3File&) = delete; Level3File& operator=(const Level3File&) = delete; Level3File(Level3File&&) noexcept; Level3File& operator=(Level3File&&) noexcept; std::shared_ptr wmo_header() const; std::shared_ptr message() const; bool LoadFile(const std::string& filename); bool LoadData(std::istream& is); private: std::unique_ptr p; }; } // namespace wsr88d } // namespace scwx