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