Enable Cereal class versioning
Cereal class versioning helps to handle data de-serialization
across different class versions that differ in the way, a particular
data is serialized.
For more reading, refer Cereal official documentation;
http://uscilab.github.io/cereal/serialization_functions.html
Change-Id: Ic5d01090b7a7679ef2bf638da786abbd033007bc
Signed-off-by: Vishwanatha Subbanna <vishwa@linux.vnet.ibm.com>
diff --git a/host_state_manager.hpp b/host_state_manager.hpp
index 35a4bdd..6b5e97e 100644
--- a/host_state_manager.hpp
+++ b/host_state_manager.hpp
@@ -4,6 +4,7 @@
#include <functional>
#include <experimental/filesystem>
#include <cereal/access.hpp>
+#include <cereal/cereal.hpp>
#include <sdbusplus/bus.hpp>
#include <phosphor-logging/log.hpp>
#include <xyz/openbmc_project/State/Boot/Progress/server.hpp>
@@ -184,9 +185,11 @@
*
* @tparam Archive - Cereal archive type (binary in our case).
* @param[in] archive - reference to Cereal archive.
+ * @param[in] version - Class version that enables handling
+ * a serialized data across code levels
*/
template<class Archive>
- void save(Archive& archive) const
+ void save(Archive& archive, const std::uint32_t version) const
{
archive(convertForMessage(sdbusplus::xyz::openbmc_project::
State::server::Host::
@@ -203,9 +206,11 @@
*
* @tparam Archive - Cereal archive type (binary in our case).
* @param[in] archive - reference to Cereal archive.
+ * @param[in] version - Class version that enables handling
+ * a serialized data across code levels
*/
template<class Archive>
- void load(Archive& archive)
+ void load(Archive& archive, const std::uint32_t version)
{
std::string reqTranState;
std::string bootProgress;