32 #ifndef CORE_SERIALIZATION_NETWORK_XML_SERIALIZER_H
33 #define CORE_SERIALIZATION_NETWORK_XML_SERIALIZER_H
35 #include <boost/noncopyable.hpp>
36 #include <boost/archive/xml_iarchive.hpp>
37 #include <boost/archive/xml_oarchive.hpp>
38 #include <boost/serialization/nvp.hpp>
39 #include <boost/foreach.hpp>
48 namespace XMLSerializer
50 template <
class Serializable>
51 void save_xml(
const Serializable&
data, std::ostream& ostr,
const std::string& rootName)
55 boost::archive::xml_oarchive oa(ostr);
56 oa << boost::serialization::make_nvp(rootName.c_str(),
data);
59 template <
class Serializable>
60 void save_xml(
const Serializable&
data,
const std::string& filename,
const std::string& rootName)
62 std::ofstream ofs(filename.c_str());
66 template <
class Serializable>
67 boost::shared_ptr<Serializable>
load_xml(std::istream& istr)
70 return boost::shared_ptr<Serializable>();
71 boost::archive::xml_iarchive ia(istr);
72 boost::shared_ptr<Serializable> nh(
new Serializable);
73 ia >> BOOST_SERIALIZATION_NVP(*nh);
77 template <
class Serializable>
78 boost::shared_ptr<Serializable>
load_xml(
const std::string& filename)
80 std::ifstream ifs(filename.c_str());
81 return load_xml<Serializable>(ifs);
void save_xml(const Serializable &data, std::ostream &ostr, const std::string &rootName)
Definition: XMLSerializer.h:51
dictionary data
Definition: eabLatVolData.py:11
boost::shared_ptr< Serializable > load_xml(std::istream &istr)
Definition: XMLSerializer.h:67