/* * @brief Defines the base class for all file formats * @file aman/config/FileFormat.h * @author Sven Czarnian * @copyright Copyright 2021 Sven Czarnian * @license This project is published under the GNU General Public License v3 (GPLv3) */ #pragma once #include #include namespace aman { /** * @brief Defines the base class for all file formats * @ingroup format * * The base class provides error information, etc. */ class FileFormat { protected: std::uint32_t m_errorLine; /**< Defines the line number if a parser detected an error */ std::string m_errorMessage; /**< Defines the descriptive error message */ /** * @brief Creates the default file format */ FileFormat() noexcept; /** * @brief Resets the internal structures */ void reset() noexcept; public: /** * @brief Checks if an error was found * @return True if an error was found, else false */ bool errorFound() const noexcept; /** * @brief Returns the error line * @return The error line */ std::uint32_t errorLine() const noexcept; /** * @brief Returns the error message * @return The error message */ const std::string& errorMessage() const noexcept; }; }