00001 #ifndef DAQFORMATMODULES_DAQFORMATSELECTOR_H 00002 #define DAQFORMATMODULES_DAQFORMATSELECTOR_H 00003 00004 /* 00005 * DaqFormatSelector.h 00006 * DaqFormatModules 00007 * 00008 * Created by Simon Patton on 8/5/10. 00009 * Copyright 2010 DayaBay Collaboration. All rights reserved. 00010 * 00011 */ 00012 #include <vector> 00013 00014 #include "GaudiKernel/Service.h" 00015 #include "GaudiKernel/IEvtSelector.h" 00016 00017 namespace DybDaq { 00018 00019 class DaqFormatSelector : public Service, 00020 virtual public IEvtSelector { 00021 00022 public: 00023 00027 DaqFormatSelector(const std::string& name, 00028 ISvcLocator* svc); 00029 00033 ~DaqFormatSelector(); 00034 00035 // Required by EventLoopMgr 00036 00037 virtual StatusCode createContext(Context*& context) const; 00038 00039 virtual StatusCode next(Context& context) const; 00040 00041 virtual StatusCode next(Context& context, 00042 int jump) const; 00043 00044 virtual StatusCode createAddress(const Context& context, 00045 IOpaqueAddress*& iop) const; 00046 00047 virtual StatusCode releaseContext(Context*& context) const; 00048 00049 // Required by ServiceManager 00050 00051 virtual StatusCode queryInterface(const InterfaceID& id, 00052 void** interface); 00053 00054 // Optional for EventLoopMgr 00055 00056 virtual StatusCode previous(Context& context) const; 00057 00058 virtual StatusCode previous(Context& context, 00059 int jump) const; 00060 00061 virtual StatusCode last(Context& context) const; 00062 00063 virtual StatusCode rewind(Context& context) const; 00064 00065 virtual StatusCode resetCriteria(const std::string& criteria, 00066 Context& context) const; 00067 00068 private: 00069 00073 DaqFormatSelector(); 00074 00078 DaqFormatSelector(const DaqFormatSelector& rhs); 00079 00083 DaqFormatSelector& operator=(const DaqFormatSelector& rhs); 00084 00088 std::vector<std::string>* m_inputFiles; 00089 00093 int m_samplingInterval; 00094 00098 unsigned int m_actionOnInvalid; 00099 }; 00100 00101 } 00102 00103 #endif // DAQFORMATMODULES_DAQFORMATSELECTOR_H