CMS 3D CMS Logo

StreamerFileReader.h
Go to the documentation of this file.
1 #ifndef IOPool_Streamer_StreamerFileReader_h
2 #define IOPool_Streamer_StreamerFileReader_h
3 
6 
7 #include <memory>
8 #include <string>
9 #include <vector>
10 
11 class EventMsgView;
12 class InitMsgView;
13 
14 namespace edm {
16  class EventPrincipal;
17  class EventSkipperByID;
18  class FileCatalogItem;
19  struct InputSourceDescription;
20  class ParameterSet;
21  namespace streamer {
22  class StreamerInputFile;
24  public:
26  ~StreamerFileReader() override;
27 
28  static void fillDescriptions(ConfigurationDescriptions& descriptions);
29 
30  private:
31  InitMsgView const* getHeader();
32  EventMsgView const* getNextEvent();
33  bool newHeader();
34  void updateMetaData(bool subsequent);
35 
36  Next checkNext() override;
37  void skip(int toSkip) override;
38  void genuineReadFile() override;
39  void genuineCloseFile() override;
40  void reset_() override;
41 
42  std::shared_ptr<EventSkipperByID const> eventSkipperByID() const {
44  }
45  std::shared_ptr<EventSkipperByID>& eventSkipperByID() { return get_underlying_safe(eventSkipperByID_); }
46 
47  std::vector<FileCatalogItem> streamerNames_; // names of Streamer files
52  bool isFirstFile_ = true;
53  bool didArtificialFile_ = false;
54  };
55  } // namespace streamer
56 } // namespace edm
57 
58 #endif
std::shared_ptr< EventSkipperByID > & eventSkipperByID()
edm::propagate_const< std::unique_ptr< StreamerInputFile > > streamReader_
constexpr std::shared_ptr< T > & get_underlying_safe(propagate_const< std::shared_ptr< T >> &iP)
void skip(int toSkip) override
HLT enums.
StreamerFileReader(ParameterSet const &pset, InputSourceDescription const &desc)
std::shared_ptr< EventSkipperByID const > eventSkipperByID() const
edm::propagate_const< std::shared_ptr< EventSkipperByID > > eventSkipperByID_
std::vector< FileCatalogItem > streamerNames_
static void fillDescriptions(ConfigurationDescriptions &descriptions)