diff options
Diffstat (limited to 'src/management')
-rw-r--r-- | src/management/mail.cpp | 2 | ||||
-rw-r--r-- | src/management/settings.cpp | 10 | ||||
-rw-r--r-- | src/management/settings.hpp | 3 |
3 files changed, 14 insertions, 1 deletions
diff --git a/src/management/mail.cpp b/src/management/mail.cpp index e3ef9f6..ed539b9 100644 --- a/src/management/mail.cpp +++ b/src/management/mail.cpp @@ -14,7 +14,7 @@ namespace smtp::manage { } - Mail::Mail(const Mail &mails) + Mail::Mail( Mail const& mails) { mMails = mails.mMails; mFileReader = mails.mFileReader; diff --git a/src/management/settings.cpp b/src/management/settings.cpp index 02392e0..8cee4e7 100644 --- a/src/management/settings.cpp +++ b/src/management/settings.cpp @@ -9,8 +9,16 @@ namespace smtp::manage { } + Settings::Settings( smtp::manage::Settings const& settings ) + : mFileReader( settings.mFileReader ) + , mSettingsFields( settings.mSettingsFields ) + { + } + bool Settings::SetSettings( general::SettingsFields const& settings_fields ) { + std::lock_guard<std::mutex> lock{mMutex}; + auto result = mFileReader.Write( settings_fields ); mSettingsFields = mFileReader.Read(); @@ -19,6 +27,8 @@ namespace smtp::manage std::string Settings::GetSettings() { + std::lock_guard<std::mutex> lock{mMutex}; + mSettingsFields = mFileReader.Read(); return converter::StructToString{}.Convert( mSettingsFields ); } diff --git a/src/management/settings.hpp b/src/management/settings.hpp index 2dbe1b6..31dbfc6 100644 --- a/src/management/settings.hpp +++ b/src/management/settings.hpp @@ -1,6 +1,7 @@ #pragma once #include <string> +#include <mutex> #include "file/settings/settings.hpp" #include "general/struct.hpp" @@ -11,6 +12,7 @@ namespace smtp::manage { public: explicit Settings( file::settings::Settings const& file_reader ); + Settings( smtp::manage::Settings const& settings ); ~Settings() = default; bool SetSettings( general::SettingsFields const& settings_fields ); @@ -26,5 +28,6 @@ namespace smtp::manage private: file::settings::Settings mFileReader; general::SettingsFields mSettingsFields; + mutable std::mutex mMutex; }; } |