#pragma once #include "persistent_json_storage.hpp" #include "report_factory.hpp" #include "report_manager.hpp" #include "sensor_cache.hpp" #include "trigger_factory.hpp" #include "trigger_manager.hpp" #include #include #include class Telemetry { public: explicit Telemetry(std::shared_ptr bus) : objServer(std::make_shared(bus)), reportManager( std::make_unique(bus, objServer, sensorCache), std::make_unique( interfaces::JsonStorage::DirectoryPath( "/var/lib/telemetry/Reports")), objServer), triggerManager( std::make_unique(bus, objServer, sensorCache), std::make_unique( interfaces::JsonStorage::DirectoryPath( "/var/lib/telemetry/Triggers")), objServer) {} private: std::shared_ptr objServer; mutable SensorCache sensorCache; ReportManager reportManager; TriggerManager triggerManager; };