00001 // ============================================================ 00002 // PackedRawDataCnvSvc.h 00003 // ------------------------------------------------------------ 00004 // 00005 // Package : PackedRawData Conversion Service 00006 // 00007 // ============================================================ 00008 #ifndef PACKEDRAWDATACNVSVC_H 00009 #define PACKEDRAWDATACNVSVC_H 00010 00011 #include "RawDataCnvBase/RawDataCnvSvc.h" 00012 #include "RawDataCnv/EventManagement/RawEvent.h" 00013 00014 class IRawDataOutputSvc; 00015 00016 // Converter Factory to create instances of this class. 00017 template <class TYPE> class CnvFactory; 00018 00019 class PackedRawDataCnvSvc : public RawDataCnvSvc { 00020 // Declaration of a Converter Factory to create instances of this class. 00021 friend class CnvFactory<PackedRawDataCnvSvc>; 00022 public: 00024 PackedRawDataCnvSvc(const std::string& name, ISvcLocator* svc); 00025 00027 virtual ~PackedRawDataCnvSvc(); 00028 00030 virtual StatusCode initialize(); 00031 00033 virtual StatusCode updateServiceState(IOpaqueAddress* pAddress); 00034 00036 virtual StatusCode queryInterface(const InterfaceID& riid, void** ppvInterface); 00037 00038 // Connect output source 00039 virtual StatusCode connectOutput(const std::string& t) ; 00040 // avoid warning 00041 virtual StatusCode connectOutput(const std::string& t, 00042 const std::string& /* mode */) { 00043 return connectOutput(t) ; 00044 } 00045 // Output data 00046 virtual StatusCode commitOutput(const std::string& t, bool b) ; 00047 00048 00049 // Get Raw Event 00050 virtual WriteRawEvent*& getRawEvent() { 00051 return m_rawEvent; 00052 } 00053 00054 protected: 00056 virtual StatusCode addConverters(); 00057 00058 private: 00059 00060 std::string m_ioSvcName; 00061 IRawDataOutputSvc* m_ioSvc; 00062 WriteRawEvent* m_rawEvent; 00063 00064 uint32_t m_status; //fucd 00065 00066 unsigned int ef_info[4]; 00067 }; 00068 00069 #endif