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 Principal
7 uses input sources to retrieve EDProducts from external storage.
8 
9 ----------------------------------------------------------------------*/
10 
12 
13 #include <memory>
14 
15 namespace edm {
16  class BranchKey;
17  class EDProductGetter;
19  class DelayedReader {
20  public:
21  virtual ~DelayedReader();
22  virtual std::unique_ptr<WrapperBase> getProduct(BranchKey const& k, EDProductGetter const* ep);
23 
24  void mergeReaders(DelayedReader* other) {mergeReaders_(other);}
25  void reset() {reset_();}
26 
28  return sharedResources_();
29  }
30 
31 
32 
33  private:
34  virtual std::unique_ptr<WrapperBase> getProduct_(BranchKey const& k, EDProductGetter const* ep) const = 0;
35  virtual void mergeReaders_(DelayedReader*) = 0;
36  virtual void reset_() = 0;
38  };
39 }
40 
41 #endif
void mergeReaders(DelayedReader *other)
Definition: DelayedReader.h:24
virtual ~DelayedReader()
virtual std::unique_ptr< WrapperBase > getProduct_(BranchKey const &k, EDProductGetter const *ep) const =0
virtual void mergeReaders_(DelayedReader *)=0
virtual std::unique_ptr< WrapperBase > getProduct(BranchKey const &k, EDProductGetter const *ep)
virtual SharedResourcesAcquirer * sharedResources_() const
SharedResourcesAcquirer * sharedResources() const
Definition: DelayedReader.h:27
virtual void reset_()=0