10 #ifndef DtXmlFileIo_H_
11 #define DtXmlFileIo_H_
15 #include <boost/archive/xml_iarchive.hpp>
16 #include <boost/archive/xml_oarchive.hpp>
21 #include <boost/iostreams/device/mapped_file.hpp>
22 #include <boost/iostreams/stream.hpp>
38 static bool write(
const std::string& filePath,
const T& t,
const std::string& tagName =
"Record")
43 std::ofstream ofs(filePath.c_str());
50 boost::archive::xml_oarchive oa(ofs);
51 oa << boost::serialization::make_nvp(tagName.c_str(), t);
64 static bool read(
const std::string& filePath, T& t,
const std::string& tagName =
"Record")
69 boost::iostreams::stream<boost::iostreams::mapped_file_source> file_stream(filePath.c_str());
71 if (file_stream.is_open())
73 boost::archive::xml_iarchive ia(file_stream);
76 ia >> boost::serialization::make_nvp(tagName.c_str(), t);
84 catch( boost::archive::archive_exception& ex )
86 std::cerr <<
"Archive Exception during deserializing:" << filePath << std::endl;
87 std::cerr << ex.what() << std::endl;