test
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 #include <mutex>
15 
16 namespace edm {
17 
18  class BranchKey;
19  class EDProductGetter;
20  class ModuleCallingContext;
22  class StreamContext;
23 
24  namespace signalslot {
25  template <typename T> class Signal;
26  }
27 
28  class DelayedReader {
29  public:
30  virtual ~DelayedReader();
31  std::unique_ptr<WrapperBase> getProduct(BranchKey const& k,
32  EDProductGetter const* ep,
33  ModuleCallingContext const* mcc = nullptr);
34 
35  void mergeReaders(DelayedReader* other) {mergeReaders_(other);}
36  void reset() {reset_();}
37 
38  std::pair<SharedResourcesAcquirer*, std::recursive_mutex*> sharedResources() const {
39  return sharedResources_();
40  }
41 
42 
43 
44  private:
45  virtual std::unique_ptr<WrapperBase> getProduct_(BranchKey const& k, EDProductGetter const* ep) = 0;
46  virtual void mergeReaders_(DelayedReader*) = 0;
47  virtual void reset_() = 0;
48  virtual std::pair<SharedResourcesAcquirer*, std::recursive_mutex*> sharedResources_() const;
51 
52  };
53 }
54 
55 #endif
std::unique_ptr< WrapperBase > getProduct(BranchKey const &k, EDProductGetter const *ep, ModuleCallingContext const *mcc=nullptr)
void mergeReaders(DelayedReader *other)
Definition: DelayedReader.h:35
virtual ~DelayedReader()
virtual std::unique_ptr< WrapperBase > getProduct_(BranchKey const &k, EDProductGetter const *ep)=0
virtual void mergeReaders_(DelayedReader *)=0
std::pair< SharedResourcesAcquirer *, std::recursive_mutex * > sharedResources() const
Definition: DelayedReader.h:38
virtual signalslot::Signal< void(StreamContext const &, ModuleCallingContext const &)> const * preEventReadFromSourceSignal() const =0
virtual std::pair< SharedResourcesAcquirer *, std::recursive_mutex * > sharedResources_() const
virtual signalslot::Signal< void(StreamContext const &, ModuleCallingContext const &)> const * postEventReadFromSourceSignal() const =0
virtual void reset_()=0