asio: Emit PropertiesChanged signal
Earlier refactoring accidentally commented out the PropertiesChanged
signal in the set_handler callback. Add it back.
Change-Id: If64e2f5545078fb67b325e677b0a411bcf8b8659
Signed-off-by: Jonathan Doman <jonathan.doman@intel.com>
diff --git a/include/sdbusplus/asio/object_server.hpp b/include/sdbusplus/asio/object_server.hpp
index d489d85..8c5f17e 100644
--- a/include/sdbusplus/asio/object_server.hpp
+++ b/include/sdbusplus/asio/object_server.hpp
@@ -32,19 +32,24 @@
sameValueUpdated,
};
+class dbus_interface;
+
class property_callback
{
public:
property_callback(
- const std::string& name, std::function<int(message_t&)>&& on_get,
+ dbus_interface& parent, const std::string& name,
+ std::function<int(message_t&)>&& on_get,
std::function<SetPropertyReturnValue(message_t&)>&& on_set_message,
std::function<SetPropertyReturnValue(const std::any&)>&& on_set_value,
const char* signature, decltype(vtable_t::flags) flags) :
- name_(name),
- on_get_(std::move(on_get)), on_set_message_(std::move(on_set_message)),
+ interface_(parent),
+ name_(name), on_get_(std::move(on_get)),
+ on_set_message_(std::move(on_set_message)),
on_set_value_(std::move(on_set_value)), signature_(signature),
flags_(flags)
{}
+ dbus_interface& interface_;
std::string name_;
std::function<int(message_t&)> on_get_;
std::function<SetPropertyReturnValue(message_t&)> on_set_message_;
@@ -414,7 +419,7 @@
auto propertyPtr = std::make_shared<PropertyType>(property);
property_callbacks_.emplace_back(
- name,
+ *this, name,
callback_get_instance<PropertyType, CallbackTypeGet>(
propertyPtr, std::move(getFunction)),
nullptr,
@@ -457,7 +462,7 @@
auto propertyPtr = std::make_shared<PropertyType>(property);
property_callbacks_.emplace_back(
- name,
+ *this, name,
callback_get_instance<PropertyType, CallbackTypeGet>(
propertyPtr, std::move(getFunction)),
callback_set_message_instance<PropertyType>(
@@ -661,7 +666,7 @@
{
if (status != SetPropertyReturnValue::sameValueUpdated)
{
- // data->signal_property(property);
+ func->interface_.signal_property(func->name_);
}
// There shouldn't be any other callbacks that want to
// handle the message so just return a positive integer.