From 9ed43c1057eeec6a01b8fdfd4d2ee54f9df39670 Mon Sep 17 00:00:00 2001 From: eportnov Date: Tue, 4 Oct 2022 18:12:19 +0300 Subject: refactor file control --- src/management/mail.cpp | 31 +++++++++++++++++-------------- src/management/mail.hpp | 4 ++-- src/management/settings.cpp | 4 ++-- 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 -- cgit v1.2.3