CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
EDProductGetter.h
Go to the documentation of this file.
1 #ifndef DataFormats_Common_EDProductGetter_h
2 #define DataFormats_Common_EDProductGetter_h
3 // -*- C++ -*-
4 //
5 // Class : EDProductGetter
6 //
14 //
15 // Original Author: Chris Jones
16 // Created: Tue Nov 1 15:06:31 EST 2005
17 //
18 
19 // user include files
22 
23 // system include files
24 #include "boost/utility.hpp"
25 
26 // forward declarations
27 
28 namespace edm {
29  class EDProductGetter : private boost::noncopyable {
30 
31  public:
32 
34  virtual ~EDProductGetter();
35 
36  // ---------- const member functions ---------------------
37  virtual WrapperHolder getIt(ProductID const&) const = 0;
38 
39  unsigned int transitionIndex() const {
40  return transitionIndex_();
41  }
42 
43  // ---------- member functions ---------------------------
44 
47  static void assignEDProductGetter(EDProductGetter const*&);
48 
49 private:
50  virtual unsigned int transitionIndex_() const = 0;
51 
52  // ---------- member data --------------------------------
53 
54  };
55 
56  EDProductGetter const*
57  mustBeNonZero(EDProductGetter const* prodGetter, std::string refType, ProductID const& productID);
58 }
59 #endif
EDProductGetter const * mustBeNonZero(EDProductGetter const *prodGetter, std::string refType, ProductID const &productID)
virtual WrapperHolder getIt(ProductID const &) const =0
unsigned int transitionIndex() const
virtual unsigned int transitionIndex_() const =0
static void assignEDProductGetter(EDProductGetter const *&)
static EDProductGetter const * switchProductGetter(EDProductGetter const *)
These can only be used internally by the framework.