00001 #ifndef DAQFORMATMODULES_DAQEVENTCONVERTER_H 00002 #define DAQFORMATMODULES_DAQEVENTCONVERTER_H 00003 00004 /* 00005 * DaqEventConverter.h 00006 * DaqFormatModules 00007 * 00008 * Created by Simon Patton on 8/10/10. 00009 * Copyright 2010 DayaBay Collaboration. All rights reserved. 00010 * 00011 */ 00012 00013 #include "GaudiKernel/GenericAddress.h" 00014 #include "GaudiKernel/Converter.h" 00015 00016 namespace DayaBay { 00017 class ReadoutHeader; 00018 } 00019 00020 namespace DybDaq { 00021 class DaqFormatContext; 00022 class EventReadout; 00023 } 00024 00025 namespace DybDaq { 00026 00027 class DaqEventConverter : public Converter { 00028 00029 public: 00030 00034 static const long storageType(); 00035 00039 static const CLID& classID(); 00040 00044 class Address : virtual public GenericAddress { 00045 00046 public: 00047 Address(const DybDaq::DaqFormatContext& context); 00048 virtual ~Address(); 00049 00050 const DaqFormatContext& context() const; 00051 00052 private: 00053 Address(); 00054 Address(const Address& address); 00055 Address& operator=(const Address& address); 00056 const DybDaq::DaqFormatContext& m_context; 00057 }; 00058 00062 DaqEventConverter(unsigned char storageType, 00063 const CLID& clid, 00064 ISvcLocator* svc); 00068 DaqEventConverter(ISvcLocator* svc); 00069 00073 ~DaqEventConverter(); 00074 00078 virtual StatusCode createObj(IOpaqueAddress* addr, 00079 DataObject*& pObject); 00080 00084 virtual long repSvcType() const; 00085 00086 private: 00087 00091 DaqEventConverter(); 00092 00096 DaqEventConverter(const DaqEventConverter& rhs); 00097 00101 DaqEventConverter& operator=(const DaqEventConverter& rhs); 00102 00106 DayaBay::ReadoutHeader* createReadoutHeader(const DybDaq::EventReadout& event); 00107 }; 00108 00109 } 00110 00111 #endif // DAQFORMATMODULES_DAQEVENTCONVERTER_H