#pragma once #include #include #include namespace scwx { namespace awips { class TextProductFileImpl; class TextProductFile { public: explicit TextProductFile(); ~TextProductFile(); TextProductFile(const TextProductFile&) = delete; TextProductFile& operator=(const TextProductFile&) = delete; TextProductFile(TextProductFile&&) noexcept; TextProductFile& operator=(TextProductFile&&) noexcept; size_t message_count() const; std::vector> messages() const; std::shared_ptr message(size_t i) const; bool LoadFile(const std::string& filename); bool LoadData(std::istream& is); private: std::unique_ptr p; }; } // namespace awips } // namespace scwx