00001 // Author : Samvel Khalatian (samvel at fnal dot gov) 00002 // Created: 07/27/07 00003 // License: GPL 00004 00005 #ifndef DAQ_FLAG_XML_H 00006 #define DAQ_FLAG_XML_H 00007 00008 #include <iosfwd> 00009 00010 #include <boost/serialization/nvp.hpp> 00011 #include <boost/serialization/export.hpp> 00012 #include <boost/serialization/version.hpp> 00013 00014 #include "CalibTracker/SiStripRunSummary/interface/FlagXML.h" 00015 #include "CalibTracker/SiStripRunSummary/interface/ClassIDBase.h" 00016 00022 class DAQFlagTxt; 00023 00035 class DAQFlagXML: public FlagXML { 00036 public: 00037 DAQFlagXML() {} 00038 00045 DAQFlagXML( const DAQFlagTxt *poDAQ_FLAGTXT); 00046 00047 protected: 00056 inline virtual Clonable *clone() const { 00057 return new DAQFlagXML( *this); 00058 } 00059 00068 virtual Clonable *cloneTxt() const; 00069 00077 virtual ClassIDBase::ID getID() const; 00078 00088 virtual int isChildValid( const FlagXML *poCHILD_CANDIDATE) const; 00089 00090 private: 00096 friend class boost::serialization::access; 00097 00098 template<class Archive> 00099 void serialize( Archive &roArchive, const unsigned int &rnVERSION) { 00100 roArchive & BOOST_SERIALIZATION_BASE_OBJECT_NVP( FlagXML); 00101 } 00106 }; 00107 00120 std::ostream & 00121 operator <<( std::ostream &roOut, const DAQFlagXML &roFLAG); 00122 00129 BOOST_CLASS_EXPORT_GUID( DAQFlagXML, "DAQFlagXML") 00130 00131 00140 BOOST_CLASS_VERSION( DAQFlagXML, 0) 00141 00142 #endif // DAQ_FLAG_XML_H