LArSoft  v06_85_00
Liquid Argon Software toolkit - http://larsoft.org/
EDProductGetterFinder.h
Go to the documentation of this file.
1 #ifndef canvas_Persistency_Common_EDProductGetterFinder_h
2 #define canvas_Persistency_Common_EDProductGetterFinder_h
3 
4 // The RefCoreStreamer uses the interface defined here to find the
5 // EDProductGetter corresponding to the current event and the
6 // ProductID. A pointer to the EDProductGetter is then written into
7 // the RefCore and will get used the first time the Ptr containing the
8 // RefCore is dereferenced. This base class breaks the dependence of
9 // the RefCoreStreamer on the classes that derive from this class. In
10 // the full framework this will be a base class for the art::Principal
11 // and in gallery this will be a base class for the gallery::Event.
12 
14 
15 namespace art {
16 
17  class EDProductGetter;
18  class ProductID;
19 
21  public:
22  virtual ~EDProductGetterFinder() = default;
23 
24  EDProductGetter const*
26  {
27  return getEDProductGetterImpl(pid);
28  }
29 
30  private:
31  virtual EDProductGetter const* getEDProductGetterImpl(ProductID) const = 0;
32  };
33 }
34 
35 #endif /* canvas_Persistency_Common_EDProductGetterFinder_h */
36 
37 // Local Variables:
38 // mode: c++
39 // End:
EDProductGetter const * getEDProductGetter(ProductID const pid) const
virtual EDProductGetter const * getEDProductGetterImpl(ProductID) const =0
virtual ~EDProductGetterFinder()=default
HLT enums.