report_manager.hpp (cd5b0b7e8e1a473262e4753e46e62d416a65649d) report_manager.hpp (b4ef22e4d365bde35a7fce7950033c9271c68ce7)
1#pragma once
2
3#include "interfaces/json_storage.hpp"
4#include "interfaces/report.hpp"
5#include "interfaces/report_factory.hpp"
6#include "interfaces/report_manager.hpp"
1#pragma once
2
3#include "interfaces/json_storage.hpp"
4#include "interfaces/report.hpp"
5#include "interfaces/report_factory.hpp"
6#include "interfaces/report_manager.hpp"
7#include "interfaces/trigger_manager.hpp"
7#include "report.hpp"
8
9#include <systemd/sd-bus-protocol.h>
10
11#include <sdbusplus/asio/object_server.hpp>
12
13#include <chrono>
14#include <memory>
15#include <string>
16#include <vector>
17
18class ReportManager : public interfaces::ReportManager
19{
20 public:
21 ReportManager(
22 std::unique_ptr<interfaces::ReportFactory> reportFactory,
23 std::unique_ptr<interfaces::JsonStorage> reportStorage,
8#include "report.hpp"
9
10#include <systemd/sd-bus-protocol.h>
11
12#include <sdbusplus/asio/object_server.hpp>
13
14#include <chrono>
15#include <memory>
16#include <string>
17#include <vector>
18
19class ReportManager : public interfaces::ReportManager
20{
21 public:
22 ReportManager(
23 std::unique_ptr<interfaces::ReportFactory> reportFactory,
24 std::unique_ptr<interfaces::JsonStorage> reportStorage,
24 const std::shared_ptr<sdbusplus::asio::object_server>& objServer);
25 const std::shared_ptr<sdbusplus::asio::object_server>& objServer,
26 std::unique_ptr<interfaces::TriggerManager>& triggerManager);
25 ~ReportManager() = default;
26
27 ReportManager(const ReportManager&) = delete;
28 ReportManager(ReportManager&&) = delete;
29 ReportManager& operator=(const ReportManager&) = delete;
30 ReportManager& operator=(ReportManager&&) = delete;
31
32 void removeReport(const interfaces::Report* report) override;
33 void updateReport(const std::string& id) override;
27 ~ReportManager() = default;
28
29 ReportManager(const ReportManager&) = delete;
30 ReportManager(ReportManager&&) = delete;
31 ReportManager& operator=(const ReportManager&) = delete;
32 ReportManager& operator=(ReportManager&&) = delete;
33
34 void removeReport(const interfaces::Report* report) override;
35 void updateReport(const std::string& id) override;
36 void updateTriggerIds(const std::string& reportId,
37 const std::string& triggerId,
38 TriggerIdUpdate updateType) override;
34
35 private:
36 std::unique_ptr<interfaces::ReportFactory> reportFactory;
37 std::unique_ptr<interfaces::JsonStorage> reportStorage;
38 std::shared_ptr<sdbusplus::asio::object_server> objServer;
39 std::unique_ptr<sdbusplus::asio::dbus_interface> reportManagerIface;
40 std::vector<std::unique_ptr<interfaces::Report>> reports;
39
40 private:
41 std::unique_ptr<interfaces::ReportFactory> reportFactory;
42 std::unique_ptr<interfaces::JsonStorage> reportStorage;
43 std::shared_ptr<sdbusplus::asio::object_server> objServer;
44 std::unique_ptr<sdbusplus::asio::dbus_interface> reportManagerIface;
45 std::vector<std::unique_ptr<interfaces::Report>> reports;
46 std::unique_ptr<interfaces::TriggerManager>& triggerManager;
41
42 void verifyAddReport(
43 const std::string& reportId, const std::string& reportName,
44 const ReportingType reportingType, Milliseconds interval,
45 const ReportUpdates reportUpdates, const uint64_t appendLimit,
46 const std::vector<LabeledMetricParameters>& readingParams);
47 interfaces::Report& addReport(
48 boost::asio::yield_context& yield, const std::string& reportId,

--- 26 unchanged lines hidden ---
47
48 void verifyAddReport(
49 const std::string& reportId, const std::string& reportName,
50 const ReportingType reportingType, Milliseconds interval,
51 const ReportUpdates reportUpdates, const uint64_t appendLimit,
52 const std::vector<LabeledMetricParameters>& readingParams);
53 interfaces::Report& addReport(
54 boost::asio::yield_context& yield, const std::string& reportId,

--- 26 unchanged lines hidden ---