message: add signal interfaces
Change-Id: Ida59e91564fbc452431ff54cfd7de59d7903e7b1
diff --git a/sdbusplus/bus.hpp b/sdbusplus/bus.hpp
index fe68690..20e0836 100644
--- a/sdbusplus/bus.hpp
+++ b/sdbusplus/bus.hpp
@@ -118,6 +118,22 @@
return message::message(m);
}
+ /** @brief Create a signal message.
+ *
+ * @param[in] objpath - The object's path for the signal.
+ * @param[in] interf - The object's interface for the signal.
+ * @param[in] member - The signal name.
+ *
+ * @return A newly constructed message.
+ */
+ auto new_signal(const char* objpath, const char* interf, const char* member)
+ {
+ sd_bus_message* m = nullptr;
+ sd_bus_message_new_signal(_bus.get(), &m, objpath, interf, member);
+
+ return message::message(m);
+ }
+
/** @brief Perform a message call.
*
* @param[in] m - The method_call message.
diff --git a/sdbusplus/message.hpp b/sdbusplus/message.hpp
index 327fb7e..74e0cdd 100644
--- a/sdbusplus/message.hpp
+++ b/sdbusplus/message.hpp
@@ -108,6 +108,16 @@
return sd_bus_message_is_method_call(_msg.get(), interface, method);
}
+ /** @brief Check if message is a signal for an interface/member.
+ *
+ * @param[in] interface - The interface to match.
+ * @param[in] member - The member to match.
+ */
+ bool is_signal(const char* interface, const char* member)
+ {
+ return sd_bus_message_is_signal(_msg.get(), interface, member);
+ }
+
/** @brief Create a 'method_return' type message from an existing message.
*
* @return method-return message.