#include "checker_decorator.hpp" #include "logger/logger_set.hpp" namespace smtp::file::mail { // //Constructors // CheckerDecorator::CheckerDecorator( checker::RegistratorMails const& registrator_errors ) : mRegistratorErrors( registrator_errors ) { } // //Public methods // manage::MailsSet CheckerDecorator::Read() const { manage::MailsSet result; if( !mBase ) { return result; } auto parsed_data = mBase->Read(); for( auto const& line : parsed_data ) { if( mRegistratorErrors.Check( line ) ) { result.push_back( line ); } } return result; } bool CheckerDecorator::Write( manage::MailsSet const& data ) const { manage::MailsSet result; for( const auto& line : data ) { if( mRegistratorErrors.Check( line ) ) { result.push_back( line ); } } if( mBase ) { return mBase->Write(result); } return false; } }