CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_4_5_patch3/src/IOPool/Streamer/src/StreamerFileReader.h

Go to the documentation of this file.
00001 #ifndef IOPool_Streamer_StreamerFileReader_h
00002 #define IOPool_Streamer_StreamerFileReader_h
00003 
00004 #include "IOPool/Streamer/interface/StreamerInputSource.h"
00005 
00006 #include "boost/shared_ptr.hpp"
00007 
00008 #include <memory>
00009 #include <string>
00010 #include <vector>
00011 
00012 class EventMsgView;
00013 class InitMsgView;
00014 
00015 namespace edm {
00016   class ConfigurationDescriptions;
00017   class EventPrincipal;
00018   class EventSkipperByID;
00019   struct InputSourceDescription;
00020   class ParameterSet;
00021   class StreamerInputFile;
00022   class StreamerFileReader : public StreamerInputSource {
00023   public:
00024     StreamerFileReader(ParameterSet const& pset, InputSourceDescription const& desc);
00025     virtual ~StreamerFileReader();
00026     virtual EventPrincipal* read();
00027 
00028     InitMsgView const* getHeader(); 
00029     EventMsgView const* getNextEvent();
00030     bool const newHeader(); 
00031     static void fillDescriptions(ConfigurationDescriptions& descriptions);
00032 
00033   private:  
00034     std::vector<std::string> streamerNames_; // names of Streamer files
00035     std::auto_ptr<StreamerInputFile> streamReader_;
00036     boost::shared_ptr<EventSkipperByID> eventSkipperByID_;
00037     int numberOfEventsToSkip_;
00038   };
00039 } //end-of-namespace-def
00040 
00041 #endif
00042