00001 // Author : Samvel Khalatian (samvel at fnal dot gov) 00002 // Created: 07/15/07 00003 // License: GPL 00004 00005 #include <istream> 00006 #include <ostream> 00007 00008 #include <boost/archive/xml_iarchive.hpp> 00009 #include <boost/archive/xml_oarchive.hpp> 00010 00011 // Next include is essential: this is the right place where all calsses are 00012 // registered for serialization: include all anchestors of FlagTxt. 00013 #include "CalibTracker/SiStripRunSummary/interface/RegisterFlagXML.h" 00014 #include "CalibTracker/SiStripRunSummary/interface/FlagXML.h" 00015 00016 #include "CalibTracker/SiStripRunSummary/interface/SerializeXML.h" 00017 00018 // --[ TEXT ARCHIVE MANAGER ]-------------------------------------------------- 00019 // --[ PUBLIC ]-- 00020 SerializeXML::SerializeXML() { 00021 poFlagXML_ = 0; 00022 } 00023 00024 SerializeXML::~SerializeXML() { 00025 if( poFlagXML_) { 00026 delete poFlagXML_; 00027 } 00028 } 00029 00030 bool SerializeXML::write( std::ostream &roOut, 00031 const FlagXML &roFLAGXML) const 00032 { 00033 bool bResult = false; 00034 00035 boost::archive::xml_oarchive oAOut( roOut); 00036 00037 try { 00038 oAOut << BOOST_SERIALIZATION_NVP( roFLAGXML); 00039 00040 bResult = true; 00041 } catch( const boost::archive::archive_exception &roEX) { 00042 // Failed to serialize Object 00043 } 00044 00045 return bResult; 00046 } 00047 00048 // --[ PRIVATE ]-- 00049 void SerializeXML::readFlag( FlagXML *poFlagXML, std::istream &roIn) { 00050 boost::archive::xml_iarchive oAIn( roIn); 00051 00052 oAIn >> BOOST_SERIALIZATION_NVP( *poFlagXML); 00053 }