expose watch callbacks
Allow watch class users to explicitly invoke the watch
callback.
Since watches and callbacks share a common pool of state
all watches must complete their initialization prior to
invoking their callback methods.
Change-Id: I62ebad64da88a145f3d5006b07c01381b0eb6728
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
diff --git a/src/propertywatchimpl.hpp b/src/propertywatchimpl.hpp
index d0153e4..67bbaff 100644
--- a/src/propertywatchimpl.hpp
+++ b/src/propertywatchimpl.hpp
@@ -108,6 +108,16 @@
alreadyRan = true;
}
+template <typename DBusInterfaceType>
+void PropertyWatch<DBusInterfaceType>::callback()
+{
+ // Invoke callback if present.
+ if (this->alreadyRan && this->cb)
+ {
+ (*this->cb)();
+ }
+}
+
template <typename T, typename DBusInterfaceType>
void PropertyWatchOfType<T, DBusInterfaceType>::updateProperties(
const std::string& busName,
@@ -144,10 +154,7 @@
std::get<2>(item->second).get() = p.second.template get<T>();
// Invoke callback if present.
- if (this->alreadyRan && this->callback)
- {
- (*this->callback)();
- }
+ this->callback();
}
}