1 /* Icinga 2 | (c) 2012 Icinga GmbH | GPLv2+ */
6 #include "livestatus/i2-livestatus.hpp"
7 #include "livestatus/table.hpp"
8 #include "livestatus/filter.hpp"
16 struct AggregatorState
18 virtual ~AggregatorState();
24 class Aggregator : public Object
27 DECLARE_PTR_TYPEDEFS(Aggregator);
29 virtual void Apply(const Table::Ptr& table, const Value& row, AggregatorState **state) = 0;
30 virtual double GetResultAndFreeState(AggregatorState *state) const = 0;
31 void SetFilter(const Filter::Ptr& filter);
34 Aggregator() = default;
36 Filter::Ptr GetFilter() const;
44 #endif /* AGGREGATOR_H */