summaryrefslogtreecommitdiff
path: root/src/management
diff options
context:
space:
mode:
Diffstat (limited to 'src/management')
-rw-r--r--src/management/mail.cpp2
-rw-r--r--src/management/settings.cpp10
-rw-r--r--src/management/settings.hpp3
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;
};
}