bus: Add interface for sd-event
With these interfaces user can attach a sd-event event loop object
with sdbusplus::bus::bus.
Change-Id: I09dcc54e532162ae5e53d446772ab5bddaa4a0a4
Signed-off-by: Yi Li <adamliyi@msn.com>
diff --git a/sdbusplus/bus.hpp b/sdbusplus/bus.hpp
index 5ec1ff7..25c7c49 100644
--- a/sdbusplus/bus.hpp
+++ b/sdbusplus/bus.hpp
@@ -3,6 +3,7 @@
#include <memory>
#include <climits>
#include <systemd/sd-bus.h>
+#include <systemd/sd-event.h>
#include <sdbusplus/message.hpp>
namespace sdbusplus
@@ -178,6 +179,28 @@
return std::string(unique);
}
+ /** @brief Attach the bus with a sd-event event loop object.
+ *
+ * @param[in] event - sd_event object.
+ * @param[in] priority - priority of bus event source.
+ */
+ void attach_event(sd_event* event, int priority)
+ {
+ sd_bus_attach_event(_bus.get(), event, priority);
+ }
+
+ /** @brief Detach the bus from its sd-event event loop object */
+ void detach_event()
+ {
+ sd_bus_detach_event(_bus.get());
+ }
+
+ /** @brief Get the sd-event event loop object of the bus */
+ auto get_event()
+ {
+ return sd_bus_get_event(_bus.get());
+ }
+
friend struct server::interface::interface;
friend struct server::manager::manager;
template<class... Args> friend struct server::object::object;