diff options
author | Vishwanatha Subbanna <vishwa@linux.vnet.ibm.com> | 2017-09-29 19:18:20 +0530 |
---|---|---|
committer | Vishwanatha Subbanna <vishwa@linux.vnet.ibm.com> | 2017-10-04 12:43:06 +0530 |
commit | a29a3eb71fed0e17d60dcbb16a32ba7e6a70b852 (patch) | |
tree | 7ea94f409bcb3a75ff8a0f59c8f1b8e9531b9621 /settings_manager.mako.hpp | |
parent | 4636e07c194b01da42b5bcaa813200077b539ad7 (diff) | |
download | phosphor-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.hpp | 21 |
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 |