Skip to content
Snippets Groups Projects
DataSetSerialization.h 1.35 KiB
Newer Older
  • Learn to ignore specific revisions
  • //
    // 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 "DataSet.h"
    
    
    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;
            }
        };
    }
    
    
    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);
    
    #endif //LIB4NEURO_DATASETSERIALIZATION_H