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