summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoreportnov <eportnov@ibs.ru>2022-10-04 18:12:19 +0300
committereportnov <eportnov@ibs.ru>2022-10-04 18:12:19 +0300
commit9ed43c1057eeec6a01b8fdfd4d2ee54f9df39670 (patch)
tree378365d36564337cabbb0664089583cff3da0b9b
parente41b247e61ce4d4cc96badab3a14bf413e4f46f2 (diff)
downloadobmc-sila-smtp-9ed43c1057eeec6a01b8fdfd4d2ee54f9df39670.tar.xz
refactor file control
-rw-r--r--src/management/mail.cpp31
-rw-r--r--src/management/mail.hpp4
-rw-r--r--src/management/settings.cpp4
3 files changed, 21 insertions, 18 deletions
diff --git a/src/management/mail.cpp b/src/management/mail.cpp
index ac8d58f..87ebb51 100644
--- a/src/management/mail.cpp
+++ b/src/management/mail.cpp
@@ -7,16 +7,18 @@ namespace smtp::manage
//
//Constructors
//
+
Mail::Mail( file::Mail const& file_reader )
- : mFileReader( file_reader )
+ : mFileReader( file_reader )
+ , mMails( mFileReader.Read() )
{
- mMails = mFileReader.Read();
}
//
//Public methods
//
+
MailsSet Mail::GetMailToSend() const
{
return mMails;
@@ -26,27 +28,21 @@ namespace smtp::manage
{
auto merged_mails = GetMergedMails( mails_to_add );
- auto result = mFileReader.Write( merged_mails );
- mMails = mFileReader.Read();
- return result;
+ return RefreshMails( mails_to_add );
}
bool Mail::DeleteMailToSend( MailsSet const& mail_to_send )
{
auto mails_to_delete = GetItersectionMails( mail_to_send );
auto result_set_after_delete = GetMailsAfterDelete( mails_to_delete );
- auto result_of_delete = mFileReader.Write( result_set_after_delete );
- if( result_of_delete )
- {
- mMails = result_set_after_delete;
- }
- return result_of_delete;
+ return RefreshMails( mails_to_delete );
}
//
//Private methods
//
+
MailsSet Mail::GetMergedMails( MailsSet const& mails_to_add )
{
MailsSet result;
@@ -69,7 +65,7 @@ namespace smtp::manage
mMails.sort();
std::set_intersection( mMails.cbegin(), mMails.cend(),
sorted_mail_to_send.cbegin(), sorted_mail_to_send.cend(),
- std::back_inserter( result ));
+ std::back_inserter( result ) );
return result;
}
@@ -80,6 +76,13 @@ namespace smtp::manage
{
result.remove( element_to_delete );
}
- return result;
- }
+ return result;
+ }
+
+ bool Mail::RefreshMails( MailsSet const& new_mails )
+ {
+ auto result = mFileReader.Write( new_mails );
+ mMails = mFileReader.Read();
+ return result;
+ }
}
diff --git a/src/management/mail.hpp b/src/management/mail.hpp
index 12b79ab..2a1182a 100644
--- a/src/management/mail.hpp
+++ b/src/management/mail.hpp
@@ -21,10 +21,10 @@ namespace smtp::manage
MailsSet GetMergedMails( MailsSet const& mails_to_add );
MailsSet GetItersectionMails( MailsSet const& mail_to_send );
MailsSet GetMailsAfterDelete( MailsSet const& result_set_after_delete );
+ bool RefreshMails( MailsSet const& new_mails );
+ file::Mail mFileReader;
MailsSet mMails;
- file::Mail mFileReader;
-
};
}
diff --git a/src/management/settings.cpp b/src/management/settings.cpp
index 0f5b326..b1f9410 100644
--- a/src/management/settings.cpp
+++ b/src/management/settings.cpp
@@ -5,8 +5,8 @@ namespace smtp::manage
{
Settings::Settings( file::Settings const& file_reader )
: mFileReader( file_reader )
+ , mSettingsFields( mFileReader.Read() )
{
- mSettingsFields = mFileReader.Read();
}
bool Settings::SetSettings( manage::SettingsFields const& settings_fields )
@@ -19,7 +19,7 @@ namespace smtp::manage
std::string Settings::GetSettings()
{
mSettingsFields = mFileReader.Read();
- return converter::StructToString{}.Convert(mSettingsFields);
+ return converter::StructToString{}.Convert( mSettingsFields );
}
bool Settings::IsNeedAuth() const noexcept