summaryrefslogtreecommitdiff
path: root/src/file/settings.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/file/settings.cpp')
-rw-r--r--src/file/settings.cpp39
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;
}
}