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