/search.css" rel="stylesheet" type="text/css"/> /search.js">
00001 #ifndef DYBIO_DYBIODAQSVC_H 00002 #define DYBIO_DYBIODAQSVC_H 00003 00004 /* 00005 * DybIODaqSvc.h 00006 * DybIOSvc 00007 * 00008 * Created by Simon Patton on 3/7/11. 00009 * Copyright 2011 DayaBay Collaboration. All rights reserved. 00010 * 00011 */ 00012 00013 class RootInputStream; 00014 00015 #include "DaqReadoutSvc/IDaqReadoutSvc.h" 00016 #include "Event/DaqBlockHeader.h" 00017 #include "PerDaqBlock/PerDaqBlockHeader.h" 00018 #include "RootIOSvc/RootIOTypedCnv.h" 00019 #include <string> 00020 00021 class DaqReadoutSvc; 00022 class IDaqReadoutSvc; 00023 00024 namespace DayaBay { 00025 class DaqBlock; 00026 } 00027 00028 #include "GaudiKernel/Service.h" 00029 #include "DybIO/IDybIODaqSvc.h" 00030 00031 class DybIODaqSvc : 00032 public Service, 00033 virtual public IDybIODaqSvc { 00034 00035 public: 00036 00040 DybIODaqSvc(const std::string& name, 00041 ISvcLocator* svc); 00042 00046 virtual StatusCode queryInterface(const InterfaceID& id, 00047 void** interface); 00048 00052 virtual StatusCode finalize(); 00053 00057 virtual StatusCode setEventEntry(const unsigned int entry); 00058 00059 private: 00060 00064 DayaBay::DaqBlockHeader* readDaqBlockHeader(); 00065 00069 StatusCode findDaqReadoutSvc(); 00070 00074 StatusCode findInputStream(); 00075 00079 StatusCode findConverter(); 00080 00084 StatusCode parseDaqBlock(const DayaBay::DaqBlock& block); 00085 00089 std::string m_daqBlockLocation; 00090 00094 IRootIOSvc* m_rioSvc; 00095 00099 RootInputStream* m_input; 00100 00104 IConversionSvc* m_convSvc; 00105 00109 DaqReadoutSvc* m_daqSvc; 00110 00114 RootIOTypedCnv<PerDaqBlockHeader, DayaBay::DaqBlockHeader>* m_daqBlockCnv; 00115 00119 unsigned int m_nextInsertion; 00120 00124 unsigned int m_entry; 00125 00129 DayaBay::DaqBlockHeader* m_pendingHeader; 00130 00131 }; 00132 #endif // DYBIO_DYBIODAQSVC_H