#pragma once #include "general/struct.hpp" #include "types/ifile_manipulator.hpp" namespace smtp::file::settings { class Settings { public: explicit Settings( types::IFileManipulatorPtr const& file_manipulator ); ~Settings() = default; general::SettingsFields Read() const; bool Write( general::SettingsFields const& settings_fields ) const; private: general::SettingsFileDataType GetParsedStore() const; general::SettingsFileDataType GetDataFromFile( std::ifstream& settings_file ) const; bool SetParsedData( general::SettingsFileDataType const& parsed_data ) const; std::string BuildParam( std::pair < std::string, std::string > const& data ) const; std::string mPathFile; types::IFileManipulatorPtr mFileManipulator; }; }