3 #ifndef GRAIL_AGGREGATOR_H
4 #define GRAIL_AGGREGATOR_H
6 #include "../Evaluator.hh"
17 template <
typename ContextType>
30 : childEvaluators{childEvaluators}
34 Aggregator(
const Aggregator<ContextType>&) =
default;
35 Aggregator(Aggregator<ContextType>&&) =
default;
39 Aggregator& operator =(
const Aggregator<ContextType>&) =
default;
40 Aggregator& operator =(Aggregator<ContextType>&&) =
default;
42 virtual void GetDependentConsiderations(std::vector<Consideration<ContextType>*>& considerations)
override
44 for(
const auto& evaluator : childEvaluators)
46 evaluator->GetDependentConsiderations(considerations);
51 virtual void DebugDump(
const std::map<const void*, unsigned int>& nodeMapping,
54 for(
const auto& childEvaluator : childEvaluators)
56 debugData.
AddChildNode(nodeMapping.at(childEvaluator.get()));
60 std::vector<std::shared_ptr<Evaluator<ContextType>>> childEvaluators{};
64 #endif //GRAIL_EVALUATOR_H