71 struct EventBaseDeleter {
72 void operator()(event_base* obj)
const { event_base_free(obj); }
75 using WatchCallbacks = DBusAsyncCallbacks<DBusWatch>;
76 using TimeoutCallbacks = DBusAsyncCallbacks<DBusTimeout>;
80 dbus_bool_t dbusAddWatch(DBusWatch* watch);
81 void dbusRemoveWatch(DBusWatch* watch);
82 void dbusWatchToggled(DBusWatch* watch);
84 dbus_bool_t dbusAddTimeout(DBusTimeout* timeout);
85 void dbusRemoveTimeout(DBusTimeout* timeout);
86 void dbusTimeoutToggled(DBusTimeout* timeout);
88 WatchCallbacks m_watchCallbacks;
89 TimeoutCallbacks m_timeoutCallbacks;
90 std::unordered_multimap<evutil_socket_t, std::unique_ptr<WatchHandler>> m_watchers;
91 std::vector<std::unique_ptr<TimeoutHandler>> m_timeouts;
92 std::unique_ptr<event_base, EventBaseDeleter> m_eventBase;
94 std::vector<IDispatchable*> m_dispatchList;