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 // Package: EDProduct
6 // Class : EDProductGetter
7 //
16 //
17 // Original Author: Chris Jones
18 // Created: Tue Nov 1 15:06:31 EST 2005
19 // $Id: EDProductGetter.h,v 1.8 2010/03/23 18:02:43 chrjones Exp $
20 //
21 
22 // system include files
23 #include "boost/utility.hpp"
24 
25 // user include files
27 
28 // forward declarations
29 
30 namespace edm {
31  class EDProduct;
32  class EDProductGetter : private boost::noncopyable {
33 
34  public:
35 
37  virtual ~EDProductGetter();
38 
39  // ---------- const member functions ---------------------
40  virtual EDProduct const* getIt(ProductID const&) const = 0;
41 
42  // ---------- member functions ---------------------------
43 
44  ProductID oldToNewProductID(ProductID const& oldProductID) const {
45  if (oldProductID.oldID() == 0) return oldProductID;
46  return oldToNewProductID_(oldProductID);
47  }
48 private:
49  virtual ProductID oldToNewProductID_(ProductID const& oldProductID) const;
50  // ---------- member data --------------------------------
51 
52  };
53 
54  EDProductGetter const*
55  mustBeNonZero(EDProductGetter const* prodGetter, std::string refType, ProductID const& productID);
56 }
57 
58 #endif
EDProductGetter const * mustBeNonZero(EDProductGetter const *prodGetter, std::string refType, ProductID const &productID)
virtual EDProduct const * getIt(ProductID const &) const =0
ProductID oldToNewProductID(ProductID const &oldProductID) const
unsigned int oldID() const
Definition: ProductID.h:42
virtual ProductID oldToNewProductID_(ProductID const &oldProductID) const