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