1 #pragma once 2 3 #include "interfaces/report_factory.hpp" 4 5 #include <boost/asio/io_context.hpp> 6 #include <sdbusplus/asio/object_server.hpp> 7 8 class ReportFactory : public interfaces::ReportFactory 9 { 10 public: 11 ReportFactory( 12 boost::asio::io_context& ioc, 13 const std::shared_ptr<sdbusplus::asio::object_server>& objServer); 14 15 std::unique_ptr<interfaces::Report> 16 make(const std::string& name, const std::string& reportingType, 17 bool emitsReadingsSignal, bool logToMetricReportsCollection, 18 std::chrono::milliseconds period, 19 const ReadingParameters& metricParams, 20 interfaces::ReportManager& reportManager) const override; 21 22 private: 23 boost::asio::io_context& ioc; 24 std::shared_ptr<sdbusplus::asio::object_server> objServer; 25 }; 26