Files

41 lines
1.0 KiB
C++

#ifndef CONVERTER_H
#define CONVERTER_H
#include <memory>
#include <cstddef>
#include <string>
#include <vector>
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<std::string> &titles() const noexcept;
[[nodiscard]] std::size_t quote_count (const std::string &title) const;
[[nodiscard]] const std::string &quote_meta (const std::string &title,
std::size_t index) const;
[[nodiscard]] const std::vector<std::string> &quote_text_lines (
const std::string &title,
std::size_t index) const;
private:
struct Impl;
std::string input_file_name_;
std::unique_ptr<Impl> impl_;
int error_code_ = 0;
};
#endif // CONVERTER_H