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