summaryrefslogtreecommitdiffstats
path: root/settings_manager.mako.hpp
diff options
context:
space:
mode:
authorVishwanatha Subbanna <vishwa@linux.vnet.ibm.com>2017-09-29 19:18:20 +0530
committerVishwanatha Subbanna <vishwa@linux.vnet.ibm.com>2017-10-04 12:43:06 +0530
commita29a3eb71fed0e17d60dcbb16a32ba7e6a70b852 (patch)
tree7ea94f409bcb3a75ff8a0f59c8f1b8e9531b9621 /settings_manager.mako.hpp
parent4636e07c194b01da42b5bcaa813200077b539ad7 (diff)
downloadphosphor-settingsd-a29a3eb71fed0e17d60dcbb16a32ba7e6a70b852.tar.gz
phosphor-settingsd-a29a3eb71fed0e17d60dcbb16a32ba7e6a70b852.zip
Enable Cereal class versioning
Fixes openbmc/openbmc#2320 Change-Id: Iac2649cd5f4794e2049cbdd4eb2df874d26beaaa Signed-off-by: Vishwanatha Subbanna <vishwa@linux.vnet.ibm.com>
Diffstat (limited to 'settings_manager.mako.hpp')
-rw-r--r--settings_manager.mako.hpp21
1 files changed, 19 insertions, 2 deletions
diff --git a/settings_manager.mako.hpp b/settings_manager.mako.hpp
index 9e0b3fd..09a5a1f 100644
--- a/settings_manager.mako.hpp
+++ b/settings_manager.mako.hpp
@@ -216,7 +216,8 @@ class Impl : public Parent
template<class Archive>
void save(Archive& a,
- const Impl& setting)
+ const Impl& setting,
+ const std::uint32_t version)
{
<%
props = []
@@ -231,7 +232,8 @@ props = ', '.join(props)
template<class Archive>
void load(Archive& a,
- Impl& setting)
+ Impl& setting,
+ const std::uint32_t version)
{
<% props = [] %>\
% for index, item in enumerate(settingsDict[object]):
@@ -349,3 +351,18 @@ class Manager
} // namespace settings
} // namespace phosphor
+
+// Now register the class version with Cereal
+% for object in objects:
+<%
+ classname = "phosphor::settings"
+ ns = object.split('/')
+ ns.pop(0)
+%>\
+% for n in ns:
+<%
+ classname += "::" + n
+%>\
+% endfor
+CEREAL_CLASS_VERSION(${classname + "::Impl"}, CLASS_VERSION);
+% endfor
OpenPOWER on IntegriCloud