// // Created by martin on 22.11.18. // #ifndef LIB4NEURO_NORMALIZATIONSTRATEGYSERIALIZATION_H #define LIB4NEURO_NORMALIZATIONSTRATEGYSERIALIZATION_H #include <boost/serialization/base_object.hpp> #include <boost/archive/text_oarchive.hpp> #include <boost/archive/text_iarchive.hpp> #include <boost/serialization/export.hpp> #include <boost/serialization/vector.hpp> #include "NormalizationStrategy.h" BOOST_SERIALIZATION_ASSUME_ABSTRACT(NormalizationStrategy); BOOST_CLASS_EXPORT_KEY(NormalizationStrategy); BOOST_CLASS_EXPORT_KEY(DoubleUnitStrategy); struct NormalizationStrategy::access { template<class Archive> static void serialize(Archive &ar, NormalizationStrategy& ns, const unsigned int version) { ar & ns.max_min_inp_val; } }; struct DoubleUnitStrategy::access { template<class Archive> static void serialize(Archive &ar, DoubleUnitStrategy &s, const unsigned int version) { ar & boost::serialization::base_object<NormalizationStrategy>(s); } }; namespace boost { namespace serialization { /** * Serialization function * @tparam Archive Boost library template * @param ar Boost parameter - filled automatically during serialization! * @param ns NormalizationStrategy instance * @param version Boost parameter - filled automatically during serialization! */ template<class Archive> void serialize(Archive & ar, NormalizationStrategy& ns, const unsigned int version) { NormalizationStrategy::access::serialize(ar, ns, version); } /** * Serialization function * @tparam Archive Boost library template * @param ar Boost parameter - filled automatically during serialization! * @param s DoubleUnitStrategy instance * @param version Boost parameter - filled automatically during serialization! */ template<class Archive> void serialize(Archive & ar, DoubleUnitStrategy& s, const unsigned int version) { DoubleUnitStrategy::access::serialize(ar, s, version); } } // namespace serialization } // namespace boost #endif //LIB4NEURO_NORMALIZATIONSTRATEGYSERIALIZATION_H