blob: 5ac32f30edbfaf3e21e77f83de5d8e939e339a95 [file] [log] [blame]
Wludzik, Jozef2f9f9b82020-10-13 09:07:45 +02001#include "report_factory.hpp"
2
3#include "report.hpp"
Wludzik, Jozefe2362792020-10-27 17:23:55 +01004#include "sensor.hpp"
5#include "utils/transform.hpp"
Wludzik, Jozef2f9f9b82020-10-13 09:07:45 +02006
7ReportFactory::ReportFactory(
Wludzik, Jozefe2362792020-10-27 17:23:55 +01008 std::shared_ptr<sdbusplus::asio::connection> bus,
Wludzik, Jozef2f9f9b82020-10-13 09:07:45 +02009 const std::shared_ptr<sdbusplus::asio::object_server>& objServer) :
Wludzik, Jozefe2362792020-10-27 17:23:55 +010010 bus(std::move(bus)),
Wludzik, Jozef2f9f9b82020-10-13 09:07:45 +020011 objServer(objServer)
12{}
13
14std::unique_ptr<interfaces::Report> ReportFactory::make(
Wludzik, Jozefe2362792020-10-27 17:23:55 +010015 std::optional<std::reference_wrapper<boost::asio::yield_context>> yield,
Wludzik, Jozef2f9f9b82020-10-13 09:07:45 +020016 const std::string& name, const std::string& reportingType,
17 bool emitsReadingsSignal, bool logToMetricReportsCollection,
18 std::chrono::milliseconds period, const ReadingParameters& metricParams,
Wludzik, Jozefe2362792020-10-27 17:23:55 +010019 interfaces::ReportManager& reportManager,
20 interfaces::JsonStorage& reportStorage) const
Wludzik, Jozef2f9f9b82020-10-13 09:07:45 +020021{
Krzysztof Grobelnyc8e3a642020-10-23 12:29:16 +020022 std::vector<std::shared_ptr<interfaces::Metric>> metrics;
23
Wludzik, Jozef2f9f9b82020-10-13 09:07:45 +020024 return std::make_unique<Report>(
Wludzik, Jozefe2362792020-10-27 17:23:55 +010025 bus->get_io_context(), objServer, name, reportingType,
26 emitsReadingsSignal, logToMetricReportsCollection, period, metricParams,
27 reportManager, reportStorage, std::move(metrics));
Wludzik, Jozef2f9f9b82020-10-13 09:07:45 +020028}