00001 // $Header: /bes/bes/BossCvs/Calibration/CalibSvc/CalibDataSvc/CalibDataSvc/CalibCLIDNode.h,v 1.2 2006/04/06 02:16:44 maqm Exp $ 00002 00003 #ifndef CalibCLIDNode_H 00004 #define CalibCLIDNode_H 00005 00006 #include <iostream> 00007 #include <string> 00008 #include "GaudiKernel/DataObject.h" 00009 //#include "CalibCnv/ICalibCnvSvc.h" 00010 00011 00022 // extern const CLID& CLID_Calib_CalibCLIDNode; 00023 00024 class CalibCLIDNode : virtual public DataObject { 00025 00026 public: 00027 00028 CalibCLIDNode(const CLID childClassID) : 00029 DataObject(), m_childClassID(childClassID) {} 00030 00031 // Having these inline in include file could cause problems, in 00032 // fact the static member could already be a problem. Will code 00033 // linked into different shareables have different copies of 00034 // 00035 virtual const CLID& clID() const { 00036 return CalibCLIDNode::classID(); 00037 } 00038 static const CLID& classID(); 00039 00040 inline CLID getChildClassID() const {return m_childClassID;} 00041 00042 virtual std::ostream& fillStream(std::ostream& s) const; 00043 00044 private: 00045 CLID m_childClassID; 00046 static CLID m_myClassID; 00047 }; 00048 #endif 00049 00050 00051 00052