CMS 3D CMS Logo

SerializeXML.cc

Go to the documentation of this file.
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 }

Generated on Tue Jun 9 17:25:53 2009 for CMSSW by  doxygen 1.5.4