// // Created by martin on 9/18/18. // #ifndef LIB4NEURO_DATASETSERIALIZATION_H #define LIB4NEURO_DATASETSERIALIZATION_H #include <boost/serialization/base_object.hpp> #include <boost/range/size_type.hpp> #include <boost/serialization/vector.hpp> #include <boost/serialization/utility.hpp> #include <boost/archive/text_oarchive.hpp> #include <boost/archive/text_iarchive.hpp> #include <boost/serialization/export.hpp> #include <boost/serialization/shared_ptr.hpp> #include "DataSet.h" BOOST_CLASS_EXPORT_KEY(lib4neuro::DataSet); namespace lib4neuro { struct DataSet::access { template<class Archive> static void serialize(Archive &ar, DataSet &ds, const unsigned int version) { ar & ds.n_elements; ar & ds.input_dim; ar & ds.output_dim; ar & ds.data; ar & ds.max_min_inp_val; ar & ds.normalization_strategy; } }; } namespace boost { namespace serialization { /** * Serialization function * @tparam Archive Boost library template * @param ar Boost parameter - filled automatically during serialization! * @param ds DataSet instance * @param version Boost parameter - filled automatically during serialization! */ template<class Archive> void serialize(Archive & ar, lib4neuro::DataSet & ds, const unsigned int version) { lib4neuro::DataSet::access::serialize(ar, ds, version); } } // namespace serialization } // namespace boost #endif //LIB4NEURO_DATASETSERIALIZATION_H