CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
DelayedReader.h
Go to the documentation of this file.
1 #ifndef FWCore_Framework_DelayedReader_h
2 #define FWCore_Framework_DelayedReader_h
3 
4 /*----------------------------------------------------------------------
5 
6 DelayedReader: The abstract interface through which the EventPrincipal
7 uses input sources to retrieve EDProducts from external storage.
8 
9 ----------------------------------------------------------------------*/
10 
12 
13 #include <memory>
14 
15 namespace edm {
16  struct BranchKey;
17  class EDProductGetter;
18  class WrapperInterfaceBase;
19  class DelayedReader {
20  public:
21  virtual ~DelayedReader();
23  return getProduct_(k, interface, ep);
24  }
25  void mergeReaders(DelayedReader* other) {mergeReaders_(other);}
26  void reset() {reset_();}
27  private:
28  virtual WrapperOwningHolder getProduct_(BranchKey const& k, WrapperInterfaceBase const* interface, EDProductGetter const* ep) const = 0;
29  virtual void mergeReaders_(DelayedReader*) = 0;
30  virtual void reset_() = 0;
31  };
32 }
33 
34 #endif
WrapperOwningHolder getProduct(BranchKey const &k, WrapperInterfaceBase const *interface, EDProductGetter const *ep)
Definition: DelayedReader.h:22
void mergeReaders(DelayedReader *other)
Definition: DelayedReader.h:25
virtual ~DelayedReader()
virtual void mergeReaders_(DelayedReader *)=0
virtual WrapperOwningHolder getProduct_(BranchKey const &k, WrapperInterfaceBase const *interface, EDProductGetter const *ep) const =0
int k[5][pyjets_maxn]
virtual void reset_()=0