update sequence serialization to support the xml archive
[mussa.git] / alg / sequence.hpp
index 64c60a06bfbb22a7191d31b239129863826cef39..39d6aed192df7559a2ebb2632873d30d883128d4 100644 (file)
@@ -19,6 +19,7 @@
 
 #include <boost/serialization/base_object.hpp>
 #include <boost/serialization/list.hpp>
+#include <boost/serialization/nvp.hpp>
 #include <boost/serialization/string.hpp>
 #include <boost/serialization/utility.hpp>
 #include <boost/serialization/export.hpp>
@@ -48,10 +49,10 @@ private:
   friend class boost::serialization::access;
   template<class Archive>
   void serialize(Archive& ar, const unsigned int /*version*/) {
-    ar & begin;
-    ar & end;
-    ar & type;
-    ar & name;
+    ar & BOOST_SERIALIZATION_NVP(begin);
+    ar & BOOST_SERIALIZATION_NVP(end);
+    ar & BOOST_SERIALIZATION_NVP(type);
+    ar & BOOST_SERIALIZATION_NVP(name);
   }
 };
 BOOST_CLASS_EXPORT(annot);
@@ -74,8 +75,8 @@ private:
   friend class boost::serialization::access;
   template<class Archive>
   void serialize(Archive& ar, const unsigned int /*version*/) {
-    ar & boost::serialization::base_object<annot>(*this);
-    ar & sequence;
+    ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(annot);
+    ar & BOOST_SERIALIZATION_NVP(sequence);
   }
 };
 BOOST_CLASS_EXPORT(motif);
@@ -100,11 +101,14 @@ class Sequence : public std::string
     friend class boost::serialization::access;
     template<class Archive>
     void serialize(Archive& ar, const unsigned int /*version*/) {
-      ar & boost::serialization::base_object<std::string>(*this);
-      ar & header;
-      ar & species;
-      ar & annots;
-      ar & motif_list;
+      ar & boost::serialization::make_nvp(
+             "seq_text", 
+             boost::serialization::base_object<std::string >(*this)
+           );
+      ar & BOOST_SERIALIZATION_NVP(header);
+      ar & BOOST_SERIALIZATION_NVP(species);
+      ar & BOOST_SERIALIZATION_NVP(annots);
+      ar & BOOST_SERIALIZATION_NVP(motif_list);
     }
 
   public: