diff options
author | eportnov <eportnov@ibs.ru> | 2022-09-13 11:13:33 +0300 |
---|---|---|
committer | eportnov <eportnov@ibs.ru> | 2022-09-13 11:13:33 +0300 |
commit | dcbaf61e4968734d9b3bc41f704ea04d54746cea (patch) | |
tree | 95a796ba075edb1abf4edea29a11544fa7344754 /src/file/settings.cpp | |
parent | df33492b80495fd36a1a488c0b0a39753f1df415 (diff) | |
download | obmc-sila-smtp-dcbaf61e4968734d9b3bc41f704ea04d54746cea.tar.xz |
add file readingfeature/mail_user_managment
Diffstat (limited to 'src/file/settings.cpp')
-rw-r--r-- | src/file/settings.cpp | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/src/file/settings.cpp b/src/file/settings.cpp new file mode 100644 index 0000000..bcb2f3e --- /dev/null +++ b/src/file/settings.cpp @@ -0,0 +1,50 @@ +#include <fstream> + +#include "settings.hpp" + +namespace smtp::file +{ + Settings::Settings( std::string const& path_file, parser::Settings const& parser, SettingsConverter const& converter) + : mPathFile( path_file ) + , mParser( parser ) + , mConverter( converter ) + { + + } + + SettingsFields Settings::Read() const + { + auto parsed_store = GetParsedStore(); + return mConverter.Convert( parsed_store ); + } + + void Settings::Write( SettingsFields const& settings_fields ) const + { + auto parsed_data = mConverter.Convert( settings_fields ); + SetParsedData(); + } + + ParsedStoreType Settings::GetParsedStore() const + { + std::ifstream settings_file{ mPathFile }; + if ( !settings_file.is_open() ) + { + //TODO new file + // std::cerr << "Failed to open pcie_devices database \n"; + } + std::string line{}; + ParsedStoreType result; + + while ( std::getline( settings_file, line ) ) + { + auto parsed_data = mParser.Parse(line); + result.insert( parsed_data ); + } + return result; + } + + void Settings::SetParsedData() const + { + + } +} |