DelayedReader.h
Go to the documentation of this file.
1 #ifndef art_Framework_Principal_DelayedReader_h
2 #define art_Framework_Principal_DelayedReader_h
3 // vim: set sw=2 expandtab :
4 
5 //
6 // DelayedReader
7 //
8 // Abstract interface used by EventPrincipal to request
9 // input sources to retrieve EDProducts from external storage.
10 //
11 
16 #include "cetlib/exempt_ptr.h"
17 
18 #include <memory>
19 #include <vector>
20 
21 namespace art {
22 
23  class DelayedReader {
24  public:
25  virtual ~DelayedReader() noexcept;
26  DelayedReader();
27 
28  std::unique_ptr<EDProduct> getProduct(Group const*,
29  ProductID,
30  RangeSet&) const;
32  std::vector<ProductProvenance> readProvenance() const;
34  std::unique_ptr<Principal> readFromSecondaryFile(int& idx);
35 
36  private:
37  virtual std::unique_ptr<EDProduct> getProduct_(Group const*,
38  ProductID,
39  RangeSet&) const = 0;
41  virtual std::vector<ProductProvenance> readProvenance_() const;
42  virtual bool isAvailableAfterCombine_(ProductID) const;
43  virtual std::unique_ptr<Principal> readFromSecondaryFile_(int& idx);
44  };
45 
46 } // namespace art
47 
48 #endif /* art_Framework_Principal_DelayedReader_h */
49 
50 // Local Variables:
51 // mode: c++
52 // End:
virtual std::unique_ptr< Principal > readFromSecondaryFile_(int &idx)
virtual bool isAvailableAfterCombine_(ProductID) const
void setPrincipal(cet::exempt_ptr< Principal >)
std::unique_ptr< EDProduct > getProduct(Group const *, ProductID, RangeSet &) const
bool isAvailableAfterCombine(ProductID) const
virtual ~DelayedReader() noexcept
virtual std::vector< ProductProvenance > readProvenance_() const
std::vector< ProductProvenance > readProvenance() const
std::unique_ptr< Principal > readFromSecondaryFile(int &idx)
virtual std::unique_ptr< EDProduct > getProduct_(Group const *, ProductID, RangeSet &) const =0
virtual void setPrincipal_(cet::exempt_ptr< Principal >)