1 #pragma once 2 3 #include "interfaces/report.hpp" 4 #include "interfaces/report_manager.hpp" 5 #include "interfaces/types.hpp" 6 7 #include <chrono> 8 #include <memory> 9 10 class ReportManager; 11 12 namespace interfaces 13 { 14 15 class ReportFactory 16 { 17 public: 18 virtual ~ReportFactory() = default; 19 20 virtual std::unique_ptr<interfaces::Report> 21 make(const std::string& name, const std::string& reportingType, 22 bool emitsReadingsSignal, bool logToMetricReportsCollection, 23 std::chrono::milliseconds period, 24 const ReadingParameters& metricParams, 25 ReportManager& reportManager) const = 0; 26 }; 27 28 } // namespace interfaces 29