00001 #ifndef IOPool_Streamer_StreamerFileReader_h 00002 #define IOPool_Streamer_StreamerFileReader_h 00003 00004 #include "IOPool/Streamer/interface/InitMessage.h" 00005 #include "IOPool/Streamer/interface/EventMessage.h" 00006 00007 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00008 00009 #include <string> 00010 #include <iostream> 00011 #include <deque> 00012 00022 namespace edm{ 00023 class StreamerInputFile; 00024 } 00025 00026 class WatcherStreamFileReader{ 00027 public: 00028 WatcherStreamFileReader(edm::ParameterSet const& pset); 00029 ~WatcherStreamFileReader(); 00030 00031 const InitMsgView* getHeader(); 00032 const EventMsgView* getNextEvent(); 00033 const bool newHeader(); 00034 00035 edm::StreamerInputFile* getInputFile(); 00036 00037 void closeFile(); 00038 00039 private: 00042 std::string inputDir_; 00043 00046 std::vector<std::string> filePatterns_; 00047 00050 std::string inprocessDir_; 00051 00052 00055 std::string processedDir_; 00056 00059 std::string corruptedDir_; 00060 00063 std::auto_ptr<edm::StreamerInputFile> streamerInputFile_; 00064 00065 static std::string fileName_; 00066 00067 std::string tokenFile_; 00068 00069 int timeOut_; 00070 00071 std::deque<std::string> filesInQueue_; 00072 00073 bool end_; 00074 00075 int verbosity_; 00076 00077 }; 00078 00079 #endif 00080