00001 // Author : Samvel Khalatian (samvel at fnal dot gov) 00002 // Created: 07/27/07 00003 // License: GPL 00004 00005 #ifndef GLOBAL_FLAG_XML_H 00006 #define GLOBAL_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 00023 class GlobalFlagTxt; 00024 00036 class GlobalFlagXML: public FlagXML { 00037 public: 00038 GlobalFlagXML() {} 00039 00046 GlobalFlagXML( const GlobalFlagTxt *poGLOBAL_FLAGTXT); 00047 00048 protected: 00057 inline virtual Clonable *clone() const { 00058 return new GlobalFlagXML( *this); 00059 } 00060 00069 virtual Clonable *cloneTxt() const; 00070 00078 virtual ClassIDBase::ID getID() const; 00079 00089 virtual int isChildValid( const FlagXML *poCHILD_CANDIDATE) const; 00090 00091 private: 00097 friend class boost::serialization::access; 00098 00099 template<class Archive> 00100 void serialize( Archive &roArchive, const unsigned int &rnVERSION) { 00101 roArchive & BOOST_SERIALIZATION_BASE_OBJECT_NVP( FlagXML); 00102 } 00107 }; 00108 00121 std::ostream & 00122 operator <<( std::ostream &roOut, const GlobalFlagXML &roFLAG); 00123 00130 BOOST_CLASS_EXPORT_GUID( GlobalFlagXML, "GlobalFlagXML") 00131 00132 00141 BOOST_CLASS_VERSION( GlobalFlagXML, 0) 00142 00143 #endif // GLOBAL_FLAG_XML_H