summaryrefslogtreecommitdiff
path: root/src/checker/registrator_settings.hpp
blob: 78854d2b7046b22a2b67f717a195e88f5132c0e3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#pragma once

#include <list>

#include "errors/types/isettings_error.hpp"

namespace smtp::checker
{
	class RegistratorSettings
	{
	public:
		RegistratorSettings() = default;
		~RegistratorSettings() = default;

		void Add( errors::types::IErrorSettingsPtr const& error )
		{
			mErrors.push_back( error );
		}

		template<typename T>
		bool Check( T const& line ) const
		{
			for( const auto& error: mErrors )
			{
				if( !error->Check( line ))
				{
					return false;
				}
			}
			return true;
		}

	private:
		std::list < errors::types::IErrorSettingsPtr > mErrors;
	};
}