00001 #ifndef _RawDataBaseCnv_H 00002 #define _RawDataBaseCnv_H 1 00003 00004 #include <vector> 00005 #include <string> 00006 #include "GaudiKernel/Converter.h" 00007 #include "GaudiKernel/CnvFactory.h" 00008 #include "RawDataCnvBase/IRawDataCnvSvc.h" 00009 00010 #include "EventModel/EventModel.h" 00011 extern const CLID& CLID_EmcDigiCol; 00012 00013 #ifndef _RawDataBaseCnv_StorageType 00014 #define _RawDataBaseCnv_StorageType 1 00015 static long Test_StorageType = 0x09; 00016 #endif 00017 00025 class RawDataBaseCnv : public Converter { 00026 protected: 00028 IRawDataCnvSvc* m_CnvSvc; 00030 std::vector<IRawDataCnvSvc::Leaf> m_leaves; 00031 00032 00033 public: 00034 RawDataBaseCnv(ISvcLocator* svc); 00035 RawDataBaseCnv(unsigned char storageType, const CLID& clid, ISvcLocator* svc); 00036 00037 virtual ~RawDataBaseCnv() { }; 00038 00039 virtual long repSvcType() const { return Test_StorageType; } 00040 00041 static const long storageType() { return Test_StorageType; } 00042 00043 static const CLID& classID() {return CLID_EmcDigiCol;}; 00044 00045 00046 StatusCode initialize(); 00047 00048 virtual StatusCode finalize(); 00049 00050 //virtual StatusCode addConverters () {return StatusCode::FAILURE;}; 00051 00053 void declareObject(const std::string& fullPath, const CLID& clid, const std::string& bank, long par=0); 00054 00056 virtual StatusCode createRep(DataObject* pObject, IOpaqueAddress*& refpAddress); 00057 00059 virtual StatusCode fillRepRefs(IOpaqueAddress* pAddress,DataObject* pObject); 00060 00062 virtual StatusCode updateRep(IOpaqueAddress* pAddress, DataObject* pObject); 00063 00065 virtual StatusCode updateRepRefs(IOpaqueAddress* pAddress, DataObject* pObject); 00066 00067 }; 00068 00069 #endif // _RawDataBaseCnv_H 00070