00001 #ifndef PSXTCINPUT_DGRAMSOURCEINDEX_H 00002 #define PSXTCINPUT_DGRAMSOURCEINDEX_H 00003 00004 //-------------------------------------------------------------------------- 00005 // File and Version Information: 00006 // $Id: DgramSourceIndex.h 7696 2014-02-27 00:40:59Z cpo@SLAC.STANFORD.EDU $ 00007 // 00008 // Description: 00009 // Class DgramSourceIndex. 00010 // 00011 //------------------------------------------------------------------------ 00012 00013 //----------------- 00014 // C/C++ Headers -- 00015 //----------------- 00016 #include <vector> 00017 #include <queue> 00018 00019 //---------------------- 00020 // Base Class Headers -- 00021 //---------------------- 00022 #include "PSXtcInput/IDatagramSource.h" 00023 #include "PSXtcInput/DgramPieces.h" 00024 00025 //------------------------------- 00026 // Collaborating Class Headers -- 00027 //------------------------------- 00028 00029 //------------------------------------ 00030 // Collaborating Class Declarations -- 00031 //------------------------------------ 00032 00033 // --------------------- 00034 // -- Class Interface -- 00035 // --------------------- 00036 00037 namespace PSXtcInput { 00038 00039 /// @addtogroup PSXtcInput 00040 00041 /** 00042 * @ingroup PSXtcInput 00043 * 00044 * @brief Implementation of IDatagramSource interface which reads data from input files. 00045 * 00046 * @note This software was developed for the LCLS project. If you use all or 00047 * part of it, please give an appropriate acknowledgment. 00048 * 00049 * @version $Id: DgramSourceIndex.h 7696 2014-02-27 00:40:59Z cpo@SLAC.STANFORD.EDU $ 00050 * 00051 * @author Christopher O'Grady 00052 */ 00053 00054 class DgramSourceIndex : public IDatagramSource { 00055 public: 00056 00057 DgramSourceIndex(); 00058 virtual ~DgramSourceIndex(); 00059 virtual void init(); 00060 void setQueue(std::queue<DgramPieces>& queue) {_queue = &queue;} 00061 virtual bool next(std::vector<XtcInput::Dgram>& eventDg, std::vector<XtcInput::Dgram>& nonEventDg); 00062 00063 private: 00064 std::queue<DgramPieces>* _queue; 00065 }; 00066 00067 } // namespace PSXtcInput 00068 00069 #endif // PSXTCINPUT_DGRAMSOURCEINDEX_H