/* * Author: Patrick-Christopher Mattulat * Company: Lynar Studios * E-Mail: webmaster@lynarstudios.com * Created: 2023-02-21 * Changed: 2024-09-13 * * */ #ifndef LS_STD_SECTION_PAIR_FILE_READER_HPP #define LS_STD_SECTION_PAIR_FILE_READER_HPP #include "SectionPairFileReaderParameter.hpp" #include #include #include #include /* * @doc: class(name: 'SectionPairFileReader', package: 'io') * @doc: io.SectionPairFileReader.description('This class reads a Section Pair file and writes it to a Section Pair document instance.') * */ namespace ls::std::io { class LS_STD_DYNAMIC_GOAL SectionPairFileReader : public ls::std::core::Class, public ls::std::core::interface_type::IReader { public: explicit SectionPairFileReader(const ls::std::io::SectionPairFileReaderParameter &_parameter); ~SectionPairFileReader() noexcept override; [[nodiscard]] ::std::shared_ptr getDocument() const; ls::std::core::type::byte_field read() override; // nodiscard is optional here private: ls::std::io::SectionPairFileReaderParameter parameter{}; void _checkFileExtension() const; void _createDocument(); void _createFileExistenceEvaluator(); void _createReader(); }; } #endif