Newer
Older
#ifndef LIB4NEURO_NEURALNETWORKSUMSERIALIZATION_H
#define LIB4NEURO_NEURALNETWORKSUMSERIALIZATION_H
Martin Beseda
committed
#include <boost/serialization/base_object.hpp>
#include <boost/serialization/export.hpp>
#include <boost/archive/text_oarchive.hpp>
#include <boost/archive/text_iarchive.hpp>
#include "../General/ExprtkWrapper.h"
Martin Beseda
committed
#include "NeuralNetworkSum.h"
#include "NeuralNetworkSerialization.h"
Martin Beseda
committed
//BOOST_CLASS_EXPORT_KEY(lib4neuro::NeuralNetworkSum);
Martin Beseda
committed
Martin Beseda
committed
namespace lib4neuro {
class NeuralNetworkSum::NeuralNetworkSumImpl {
public:
std::vector<NeuralNetwork*>* summand;
std::vector<ExprtkWrapper*>* summand_coefficient;
};
Martin Beseda
committed
struct NeuralNetworkSum::access {
template<class Archive>
static void serialize(Archive& ar,
NeuralNetworkSum& n,
const unsigned int version) {
Martin Beseda
committed
ar & boost::serialization::base_object<NeuralNetwork>(n);
ar & n.p_impl->summand;
ar & n.p_impl->summand_coefficient;
Martin Beseda
committed
}
};
}
Martin Beseda
committed
namespace boost {
namespace serialization {
/**
* Serialization function
* @tparam Archive Boost library template
* @param ar Boost parameter - filled automatically during serialization!
* @param n NeuralNetworkSum instance
* @param version Boost parameter - filled automatically during serialization!
*/
template<class Archive>
void serialize(Archive& ar,
lib4neuro::NeuralNetworkSum& n,
const unsigned int version) {
lib4neuro::NeuralNetworkSum::access::serialize(ar,
n,
version);
Martin Beseda
committed
}
} // namespace serialization
} // namespace boost
#endif //LIB4NEURO_NEURALNETWORKSUMSERIALIZATION_H