#pragma once #include "interfaces/report_factory.hpp" #include "interfaces/sensor.hpp" #include "sensor_cache.hpp" #include #include class ReportFactory : public interfaces::ReportFactory { public: ReportFactory( std::shared_ptr bus, const std::shared_ptr& objServer, SensorCache& sensorCache); std::vector convertMetricParams( boost::asio::yield_context& yield, const ReadingParameters& metricParams) const override; std::unique_ptr make(const std::string& name, const std::string& reportingType, bool emitsReadingsSignal, bool logToMetricReportsCollection, Milliseconds period, uint64_t appendLimitIn, const std::string& reportUpdatesIn, interfaces::ReportManager& reportManager, interfaces::JsonStorage& reportStorage, std::vector labeledMetricParams, bool enabled) const override; private: Sensors getSensors( const std::vector& sensorPaths) const; std::shared_ptr bus; std::shared_ptr objServer; SensorCache& sensorCache; };