summaryrefslogtreecommitdiffstats
path: root/src/templates/conditional.mako.cpp
diff options
context:
space:
mode:
authorBrad Bishop <bradleyb@fuzziesquirrel.com>2017-05-30 14:21:12 -0400
committerBrad Bishop <bradleyb@fuzziesquirrel.com>2017-06-19 16:26:48 -0400
commit3539db640767e6dafa652864fc5a5445db4ee697 (patch)
treed707f794e06cead05b7a0f3f4fca349718d374de /src/templates/conditional.mako.cpp
parentaabc54616fba1ad2c26acaf96ddf682ce3c263f0 (diff)
downloadphosphor-dbus-monitor-3539db640767e6dafa652864fc5a5445db4ee697.tar.gz
phosphor-dbus-monitor-3539db640767e6dafa652864fc5a5445db4ee697.zip
Add deferrable callbacks
Deferrable callbacks delay callback invocation until a pre configured length of time has elapsed. One example scenario where deferrable callbacks help is to avoid oscillation when testing a condition and making callbacks frequently. Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com> Change-Id: I180c99b57ec1c9bde4da76d947a026f809341c8a
Diffstat (limited to 'src/templates/conditional.mako.cpp')
-rw-r--r--src/templates/conditional.mako.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/templates/conditional.mako.cpp b/src/templates/conditional.mako.cpp
index 3cc9564..229b3d6 100644
--- a/src/templates/conditional.mako.cpp
+++ b/src/templates/conditional.mako.cpp
@@ -1,3 +1,10 @@
+% if c.defer:
+std::make_unique<DeferrableCallback<ConfigPropertyCallbacks, SDEventTimer>>(
+${indent(1)}ConfigPropertyCallbackGroups::get()[${c.graph}],
+${indent(1)}*ConfigConditions::get()[${c.condition}],
+${indent(1)}${c.defer})\
+% else:
std::make_unique<ConditionalCallback<ConfigPropertyCallbacks>>(
${indent(1)}ConfigPropertyCallbackGroups::get()[${c.graph}],
${indent(1)}*ConfigConditions::get()[${c.condition}])\
+% endif\
OpenPOWER on IntegriCloud