summaryrefslogtreecommitdiffstats
path: root/src/templates
diff options
context:
space:
mode:
Diffstat (limited to 'src/templates')
-rw-r--r--src/templates/generated.mako.hpp29
-rw-r--r--src/templates/journal.mako.cpp3
2 files changed, 26 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)}>;
diff --git a/src/templates/journal.mako.cpp b/src/templates/journal.mako.cpp
new file mode 100644
index 0000000..787337d
--- /dev/null
+++ b/src/templates/journal.mako.cpp
@@ -0,0 +1,3 @@
+std::make_unique<Journal<${c.datatype}, phosphor::logging::level::${c.severity}>>(
+${indent(1)}"${c.message}",
+${indent(1)}ConfigPropertyIndicies::get()[${c.instances}])\
OpenPOWER on IntegriCloud