#ifndef CONVERTER_H #define CONVERTER_H #include #include #include #include class Converter { public: explicit Converter (std::string input_file_name); virtual ~Converter(); Converter (const Converter &) = delete; Converter &operator= (const Converter &) = delete; virtual bool save (const std::string &output_file_name) = 0; [[nodiscard]] int error_code() const noexcept; protected: bool parse(); void set_error_code (int error_code) noexcept; [[nodiscard]] const std::vector &titles() const noexcept; [[nodiscard]] std::size_t quote_count (const std::string &title) const; [[nodiscard]] const std::string "e_meta (const std::string &title, std::size_t index) const; [[nodiscard]] const std::vector "e_text_lines ( const std::string &title, std::size_t index) const; private: struct Impl; std::string input_file_name_; std::unique_ptr impl_; int error_code_ = 0; }; #endif // CONVERTER_H