diff options
Diffstat (limited to 'src/file/settings.cpp')
-rw-r--r-- | src/file/settings.cpp | 39 |
1 files changed, 29 insertions, 10 deletions
diff --git a/src/file/settings.cpp b/src/file/settings.cpp index bcb2f3e..4691fda 100644 --- a/src/file/settings.cpp +++ b/src/file/settings.cpp @@ -4,24 +4,22 @@ namespace smtp::file { - Settings::Settings( std::string const& path_file, parser::Settings const& parser, SettingsConverter const& converter) + Settings::Settings( std::string const& path_file) : mPathFile( path_file ) - , mParser( parser ) - , mConverter( converter ) { } - SettingsFields Settings::Read() const + manage::SettingsFields Settings::Read() const { auto parsed_store = GetParsedStore(); - return mConverter.Convert( parsed_store ); + return converter::Full{}.Convert( parsed_store ); } - void Settings::Write( SettingsFields const& settings_fields ) const + bool Settings::Write( manage::SettingsFields const& settings_fields ) const { - auto parsed_data = mConverter.Convert( settings_fields ); - SetParsedData(); + auto parsed_data = converter::Full{}.Convert( settings_fields ); + return SetParsedData( parsed_data ); } ParsedStoreType Settings::GetParsedStore() const @@ -37,14 +35,35 @@ namespace smtp::file while ( std::getline( settings_file, line ) ) { - auto parsed_data = mParser.Parse(line); + auto parsed_data = parser::Settings{}.Parse(line); result.insert( parsed_data ); } return result; } - void Settings::SetParsedData() const + bool Settings::SetParsedData( ParsedStoreType const& parsed_data ) const { + std::ofstream settings_file{ mPathFile }; + if ( !settings_file.is_open() ) + { + //TODO new file + // std::cerr << "Failed to open pcie_devices database \n"; + return false; + } + for( const auto& data : parsed_data ) + { + auto line = BuildParam( data ); + settings_file << line << "\n"; + } + return true; + } + std::string Settings::BuildParam( std::pair<std::string, std::string> const& data) const + { + std::string result; + result += data.first; + result += '='; + result += data.second; + return result; } } |