blob: 4a6a6b06d498268abde66a09142b39cc1c504389 [file] [log] [blame]
Krzysztof Grobelny64b75a52020-09-18 10:17:16 +02001#pragma once
2
Wludzik, Jozefe2362792020-10-27 17:23:55 +01003#include "persistent_json_storage.hpp"
Wludzik, Jozef2f9f9b82020-10-13 09:07:45 +02004#include "report_factory.hpp"
Krzysztof Grobelny64b75a52020-09-18 10:17:16 +02005#include "report_manager.hpp"
6
7#include <sdbusplus/asio/connection.hpp>
8#include <sdbusplus/asio/object_server.hpp>
9
10#include <memory>
11
12class Telemetry
13{
14 public:
15 Telemetry(std::shared_ptr<sdbusplus::asio::connection> bus) :
16 objServer(std::make_shared<sdbusplus::asio::object_server>(bus)),
Wludzik, Jozefe2362792020-10-27 17:23:55 +010017 reportManager(std::make_unique<ReportFactory>(bus, objServer),
18 std::make_unique<PersistentJsonStorage>(
19 interfaces::JsonStorage::DirectoryPath(
20 "/var/lib/telemetry/Reports")),
21 objServer)
Krzysztof Grobelny64b75a52020-09-18 10:17:16 +020022 {}
23
24 private:
25 std::shared_ptr<sdbusplus::asio::object_server> objServer;
26 ReportManager reportManager;
27};