00001 #ifndef DAQFORMATMODULES_DAQREADOUTSVC_H 00002 #define DAQFORMATMODULES_DAQREADOUTSVC_H 00003 00004 /* 00005 * DaqReadoutSvc 00006 * DaqFormatModules 00007 * 00008 * Created by Simon Patton on 9/2/10. 00009 * Copyright 2010 DayaBay Collaboration. All rights reserved. 00010 * 00011 */ 00012 #include <vector> 00013 00014 #include "GaudiKernel/Service.h" 00015 #include "DaqReadoutSvc/IDaqReadoutSvc.h" 00016 00017 namespace DybDaq { 00018 class FileBuffer; 00019 } 00020 00021 class DaqReadoutSvc : public Service, 00022 virtual public IDaqReadoutSvc { 00023 00024 public: 00025 00029 DaqReadoutSvc(const std::string& name, 00030 ISvcLocator* svc); 00031 00035 ~DaqReadoutSvc(); 00036 00037 // Required by ServiceManager 00038 00039 virtual StatusCode queryInterface(const InterfaceID& id, 00040 void** interface); 00041 00042 // Required by IDaqReadoutSvc 00043 00047 virtual bool isGenerating() const; 00048 00052 virtual unsigned int ltbSlot(const DayaBay::Detector& detector) const; 00053 00057 virtual unsigned int runNumber(const DayaBay::Detector& detector) const; 00058 00062 virtual unsigned int nextEventNumber(const DayaBay::Detector& detector); 00063 00067 virtual bool hasFileStartRecord() const; 00068 00072 virtual const DybDaq::FileStartRecord& fileStartRecord() const; 00073 00077 virtual bool hasFileNameStrings() const; 00078 00082 virtual const DybDaq::FileNameStrings& fileNameStrings() const; 00083 00087 virtual bool hasMetadataStrings() const; 00088 00092 virtual const DybDaq::MetadataStrings& metadataStrings() const; 00093 00097 virtual bool hasRunParametersRecord() const; 00098 00102 virtual const DybDaq::RunParametersRecord& runParametersRecord() const; 00103 00107 virtual bool hasCalibrationParametersRecord() const; 00108 00112 virtual const DybDaq::CalibrationParametersRecord& calibrationParametersRecord() const; 00113 00118 virtual bool hasFileEndRecord() const; 00119 00123 virtual const DybDaq::FileEndRecord& fileEndRecord() const; 00124 00128 void setFileRecord(const DybDaq::FileBuffer* record); 00129 00133 void setFileRecord(const DybDaq::FileStartRecord* record); 00134 00138 void setFileRecord(const DybDaq::FileNameStrings* record); 00139 00143 void setFileRecord(const DybDaq::MetadataStrings* record); 00144 00148 void setFileRecord(const DybDaq::RunParametersRecord* record); 00149 00153 void setFileRecord(const DybDaq::CalibrationParametersRecord* record); 00154 00158 void setFileRecord(const DybDaq::FileEndRecord* record); 00159 00160 private: 00161 00165 DaqReadoutSvc(); 00166 00170 DaqReadoutSvc(const DaqReadoutSvc& rhs); 00171 00175 DaqReadoutSvc& operator=(const DaqReadoutSvc& rhs); 00176 00180 unsigned int m_runNumber; 00181 00185 unsigned int m_nextEventNumber; 00186 00190 bool m_generating; 00191 00195 const DybDaq::FileStartRecord* m_fileStartRecord; 00196 00200 const DybDaq::FileNameStrings* m_fileNameStrings; 00201 00205 const DybDaq::MetadataStrings* m_metadataStrings; 00206 00210 const DybDaq::RunParametersRecord* m_runParametersRecord; 00211 00215 const DybDaq::CalibrationParametersRecord* m_calibrationParametersRecord; 00216 00220 const DybDaq::FileEndRecord* m_fileEndRecord; 00221 00222 }; 00223 00224 #endif // DAQFORMATMODULES_DAQREADOUTSVC_H