Skip to content
Snippets Groups Projects
ConnectionFunctionConstantSerialization.h 1.64 KiB
Newer Older
#ifndef LIB4NEURO_CONNECTIONFUNCTIONCONSTANTSERIALIZATION_H
#define LIB4NEURO_CONNECTIONFUNCTIONCONSTANTSERIALIZATION_H

#include <boost/archive/text_oarchive.hpp>
#include <boost/archive/text_iarchive.hpp>
#include <boost/serialization/vector.hpp>
#include <boost/serialization/export.hpp>

#include "ConnectionFunctionConstant.h"
#include "ConnectionFunctionGeneralSerialization.h"


BOOST_CLASS_EXPORT_KEY(ConnectionFunctionConstant);

struct ConnectionFunctionConstant :: access {
    template <class Archive>
    static void serialize(Archive &ar, ConnectionFunctionConstant& c, const unsigned int version) {
        ar & boost::serialization::base_object<ConnectionFunctionGeneral>(c);
        ar & c.weight;
    }
};

// TODO what's the following template doing exactly?
template void ConnectionFunctionConstant::access::serialize<boost::archive::text_oarchive>(boost::archive::text_oarchive&,
        ConnectionFunctionConstant&, const unsigned int);

namespace boost {
    namespace serialization {

        /**
         * Serialization function
         * @tparam Archive Boost library template
         * @param ar Boost parameter - filled automatically during serialization!
         * @param n ConnectionFunctionConstant instance
         * @param version Boost parameter - filled automatically during serialization!
         */
        template<class Archive>
        void serialize(Archive & ar, ConnectionFunctionConstant& c, const unsigned int version)
        {
            ConnectionFunctionConstant::access::serialize(ar, c, version);
        }


    } // namespace serialization
} // namespace boost


#endif //LIB4NEURO_CONNECTIONFUNCTIONCONSTANTSERIALIZATION_H