00001 // Author : Samvel Khalatian (samvel at fnal dot gov) 00002 // Created: 07/27/07 00003 // License: GPL 00004 00005 #ifndef GLOBAL_FLAG_TXT_H 00006 #define GLOBAL_FLAG_TXT_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/FlagTxt.h" 00015 #include "CalibTracker/SiStripRunSummary/interface/ClassIDBase.h" 00016 00023 class GlobalFlagXML; 00024 00036 class GlobalFlagTxt: public FlagTxt { 00037 public: 00038 GlobalFlagTxt() {} 00039 00046 GlobalFlagTxt( const GlobalFlagXML *poGLOBAL_FLAGXML); 00047 00048 protected: 00057 inline virtual Clonable *clone() const { 00058 return new GlobalFlagTxt( *this); 00059 } 00060 00069 virtual Clonable *cloneXML() const; 00070 00078 ClassIDBase::ID getID() const; 00079 00089 virtual int isChildValid( const FlagTxt *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<FlagTxt>( *this); 00102 } 00107 }; 00108 00121 std::ostream & 00122 operator <<( std::ostream &roOut, const GlobalFlagTxt &roFLAG); 00123 00130 BOOST_CLASS_EXPORT_GUID( GlobalFlagTxt, "GlobalFlagTxt") 00131 00132 00141 BOOST_CLASS_VERSION( GlobalFlagTxt, 0) 00142 00143 #endif // GLOBAL_FLAG_TXT_H