00001 //==================================================================== 00002 // RawDataHltCnv.h 00003 //==================================================================== 00004 // 00005 // Description: 00006 // RawDataHltCnv is the concrete converter for 00007 // the event on the TDS /Event/Hlt 00008 // 00009 //-------------------------------------------------------------------- 00010 00011 #ifndef RAWDATA_HLT_CNV_H 00012 #define RAWDATA_HLT_CNV_H 00013 00014 // Include files. 00015 #include "GaudiKernel/Converter.h" 00016 #include "RawDataCnvBase/RawDataBaseCnv.h" 00017 #include "RawDataCnv/ClassID_temp.h" 00018 #include "RawDataCnv/PackedRawDataCnvSvc.h" 00019 00020 namespace Event{ class EventHeader; } 00021 00022 // Forward declarations. 00023 class IOpaqueAddress; 00024 class DataObject; 00025 class StatusCode; 00026 class IRawDataInputSvc; 00027 00028 // Converter Factory to create instances of this class. 00029 template <class TYPE> class CnvFactory; 00030 00031 class RawDataHltCnv : public RawDataBaseCnv 00032 { 00033 00034 // Declaration of a Converter Factory to create instances of this class. 00035 friend class CnvFactory<RawDataHltCnv>; 00036 protected: 00037 // Standard Constructor. 00038 RawDataHltCnv(ISvcLocator* svc); 00039 public: 00040 StatusCode initialize(); 00041 00042 // Return the class type of this converter. 00043 static const CLID& classID(); 00044 00045 virtual long repSvcType() const { 00046 return PACKEDRAWEVENT_StorageType; 00047 } 00048 00049 static const unsigned char storageType() { 00050 return PACKEDRAWEVENT_StorageType; 00051 } 00052 00053 // Create a converted object in the Transient Data Store. 00054 StatusCode createObj(IOpaqueAddress* pAddr, DataObject*& pObj); 00055 00057 virtual StatusCode updateObj(IOpaqueAddress*, DataObject*); 00058 00059 virtual StatusCode createRep(DataObject* pObj, IOpaqueAddress*& pAddr); 00060 00061 private: 00062 IRawDataInputSvc* m_inputSvc; 00064 IRawDataCnvSvc* m_RawDataAccess; 00065 00066 }; 00067 00068 #endif // RAWDATA_DIGI_CNV_H