summaryrefslogtreecommitdiffstats
path: root/src/templates/generated.mako.hpp
diff options
context:
space:
mode:
authorBrad Bishop <bradleyb@fuzziesquirrel.com>2017-05-20 21:42:38 -0400
committerBrad Bishop <bradleyb@fuzziesquirrel.com>2017-06-19 16:26:44 -0400
commitc1283ae8472dbd4e2c3593b76b7600ac72640b80 (patch)
tree1e45c148d19a59a561df430a1f4ba3728196d910 /src/templates/generated.mako.hpp
parent893b348890781dba2603ead61cf6f724350d0b47 (diff)
downloadphosphor-dbus-monitor-c1283ae8472dbd4e2c3593b76b7600ac72640b80.tar.gz
phosphor-dbus-monitor-c1283ae8472dbd4e2c3593b76b7600ac72640b80.zip
Add support for callbacks
Callbacks are the response in the PDM 'trigger->response' model. Add general support for implementing callbacks and implement a log to systemd journal using that framework. Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com> Change-Id: I8bead5368ee5472a02b47e8bba9e9df3a1f346bc
Diffstat (limited to 'src/templates/generated.mako.hpp')
-rw-r--r--src/templates/generated.mako.hpp29
1 files changed, 23 insertions, 6 deletions
diff --git a/src/templates/generated.mako.hpp b/src/templates/generated.mako.hpp
index 0911e3a..61c2b6f 100644
--- a/src/templates/generated.mako.hpp
+++ b/src/templates/generated.mako.hpp
@@ -5,6 +5,7 @@
#include <array>
#include <string>
#include "data_types.hpp"
+#include "journal.hpp"
#include "propertywatchimpl.hpp"
#include "sdbusplus.hpp"
@@ -107,15 +108,15 @@ struct ConfigPropertyIndicies
{
PropertyIndex::key_type
{
- ConfigPaths::get()[${i[0]}],
- ConfigInterfaces::get()[${i[2]}],
- ConfigProperties::get()[${i[3]}]
+ std::cref(ConfigPaths::get()[${i[0]}]),
+ std::cref(ConfigInterfaces::get()[${i[2]}]),
+ std::cref(ConfigProperties::get()[${i[3]}])
},
PropertyIndex::mapped_type
{
- ConfigMeta::get()[${i[1]}],
- ConfigMeta::get()[${i[4]}],
- ConfigPropertyStorage::get()[${i[5]}]
+ std::cref(ConfigMeta::get()[${i[1]}]),
+ std::cref(ConfigMeta::get()[${i[4]}]),
+ std::ref(ConfigPropertyStorage::get()[${i[5]}])
},
},
% endfor
@@ -127,6 +128,22 @@ struct ConfigPropertyIndicies
}
};
+struct ConfigPropertyCallbacks
+{
+ using Callbacks = std::array<std::unique_ptr<Callback>, ${len(callbacks)}>;
+
+ static auto& get()
+ {
+ static const Callbacks propertyCallbacks =
+ {
+% for c in callbacks:
+ ${c.construct(loader, indent=indent +3)},
+% endfor
+ };
+ return propertyCallbacks;
+ }
+};
+
struct ConfigPropertyWatches
{
using PropertyWatches = std::array<std::unique_ptr<Watch>, ${len(watches)}>;
OpenPOWER on IntegriCloud