CMS 3D CMS Logo

StreamerInputIndexFile.h

Go to the documentation of this file.
00001 #ifndef IOPool_Streamer_StreamerInputIndexFile_h
00002 #define IOPool_Streamer_StreamerInputIndexFile_h
00003 
00004 #include "IOPool/Streamer/interface/MsgTools.h"
00005 #include "IOPool/Streamer/interface/IndexRecords.h"
00006 #include <string>
00007 
00008   class StreamerInputIndexFile
00009   {
00011   public:
00012     explicit StreamerInputIndexFile(const std::string& name);
00013     explicit StreamerInputIndexFile(const std::vector<std::string>& names);
00014 
00015     ~StreamerInputIndexFile();
00016 
00017     const StartIndexRecord* startMessage() const { return startMsg_; }
00018 
00019     bool eof() {return eof_; }
00020 
00021     const indexRecIter begin() { return indexes_.begin(); }
00022     const indexRecIter end() { return indexes_.end(); }
00023     indexRecIter sort();
00024 
00025   private:
00026 
00027     void readStartMessage(); 
00028     int  readEventMessage(); 
00030     std::ifstream* ist_;
00031 
00032     StartIndexRecord* startMsg_;
00033 
00034     bool eof_;
00035 
00036     uint64 eventBufPtr_;
00037 
00038     std::vector<char> headerBuf_;
00039     std::vector<char> eventBuf_;
00040     uint32 eventHeaderSize_;
00041 
00042     std::vector<EventIndexRecord*> indexes_;
00043   };
00044 
00045 
00046 
00047 
00048 #endif
00049 

Generated on Tue Jun 9 17:39:18 2009 for CMSSW by  doxygen 1.5.4