1 #pragma once 2 3 #include "persistent_json_storage.hpp" 4 #include "report_factory.hpp" 5 #include "report_manager.hpp" 6 7 #include <sdbusplus/asio/connection.hpp> 8 #include <sdbusplus/asio/object_server.hpp> 9 10 #include <memory> 11 12 class Telemetry 13 { 14 public: 15 Telemetry(std::shared_ptr<sdbusplus::asio::connection> bus) : 16 objServer(std::make_shared<sdbusplus::asio::object_server>(bus)), 17 reportManager(std::make_unique<ReportFactory>(bus, objServer), 18 std::make_unique<PersistentJsonStorage>( 19 interfaces::JsonStorage::DirectoryPath( 20 "/var/lib/telemetry/Reports")), 21 objServer) 22 {} 23 24 private: 25 std::shared_ptr<sdbusplus::asio::object_server> objServer; 26 ReportManager reportManager; 27 }; 28