#ifndef VALIDATOR_H #define VALIDATOR_H #include #include #include class Policy; class Actor; class Validator { public: explicit Validator(const std::list>& policies); virtual ~Validator() = 0; struct ValidateResult { bool success = false; std::string validate_output; }; virtual ValidateResult validate(const std::shared_ptr& actor) const = 0; protected: std::list> _validation_policies; }; #endif // VALIDATOR_H