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