Add callback contexts
Add the notion of a callback context. This enables callbacks
to have logic around the conditions they were invoked in.
There are two context on which call back can be invoked
1) Startup: during startup all the call backs will be called
2) Signal: As part of condition match on the watched properties.
Callback would behave differently based on the context.
eg: eventCallback
1) Startup: Don't take any action.
2) Signal: Create the Dbus Object for the event.
Change-Id: If455558798ac3e44bbd8a93de0ce1b09d2e308ae
Signed-off-by: Ratan Gupta <ratagupt@in.ibm.com>
diff --git a/src/propertywatchimpl.hpp b/src/propertywatchimpl.hpp
index 3ef5de5..43875b9 100644
--- a/src/propertywatchimpl.hpp
+++ b/src/propertywatchimpl.hpp
@@ -104,12 +104,12 @@
}
template <typename DBusInterfaceType>
-void PropertyWatch<DBusInterfaceType>::callback()
+void PropertyWatch<DBusInterfaceType>::callback(Context ctx)
{
// Invoke callback if present.
if (this->alreadyRan && this->cb)
{
- (*this->cb)();
+ (*this->cb)(ctx);
}
}
@@ -149,7 +149,7 @@
std::get<2>(item->second).get() = p.second.template get<T>();
// Invoke callback if present.
- this->callback();
+ this->callback(Context::SIGNAL);
}
}