blob: d3303b28c05ab50df1bfdfe474a2a6f254e3db82 [file] [log] [blame]
Jagpal Singh Gillca8c7e92024-11-02 16:51:48 -07001#pragma once
2
3#include <sdbusplus/async.hpp>
4#include <sdbusplus/message/native_types.hpp>
5
6#include <string>
7#include <unordered_map>
8
9namespace cable
10{
11
12class Events
13{
14 public:
15 /** @brief Event type */
16 enum class Type
17 {
18 connected,
19 disconnected,
20 unknown
21 };
22
23 Events() = delete;
24 explicit Events(sdbusplus::async::context& ctx) : ctx(ctx) {}
25
26 /** @brief Generate a cable event */
27 auto generateCableEvent(Type type, std::string name)
28 -> sdbusplus::async::task<>;
29
30 private:
31 /** @brief Map type for event name to log event object path */
32 using event_map_t =
33 std::unordered_map<std::string, sdbusplus::message::object_path>;
34
35 sdbusplus::async::context& ctx;
36 event_map_t pendingEvents;
37};
38
39} // namespace cable