#pragma once #include "general/struct.hpp" #include "types/ifile_manipulator.hpp" #include "general/idecorator.hpp" #include "file/errors/registrator.hpp" namespace smtp::file::settings { class FileDecorator : public general::IDecorator< types::IFileManipulator> { public: explicit FileDecorator( std::string const& path_file, errors::Registrator const& registrator_errors ); ~FileDecorator() = default; general::SettingsFileDataType Read() const override; bool Write( general::SettingsFileDataType const& data ) const override; private: general::SettingsFileDataType GetDataFromFile( std::ifstream& settings_file ) const; std::string mPathFile; errors::Registrator mRegistratorErrors; }; }