00001 #ifndef DataFormats_Common_EDProductGetter_h 00002 #define DataFormats_Common_EDProductGetter_h 00003 // -*- C++ -*- 00004 // 00005 // Class : EDProductGetter 00006 // 00014 // 00015 // Original Author: Chris Jones 00016 // Created: Tue Nov 1 15:06:31 EST 2005 00017 // 00018 00019 // user include files 00020 #include "DataFormats/Common/interface/WrapperHolder.h" 00021 #include "DataFormats/Provenance/interface/ProductID.h" 00022 00023 // system include files 00024 #include "boost/utility.hpp" 00025 00026 // forward declarations 00027 00028 namespace edm { 00029 class EDProductGetter : private boost::noncopyable { 00030 00031 public: 00032 00033 EDProductGetter(); 00034 virtual ~EDProductGetter(); 00035 00036 // ---------- const member functions --------------------- 00037 virtual WrapperHolder getIt(ProductID const&) const = 0; 00038 00039 // ---------- member functions --------------------------- 00040 00042 static EDProductGetter const* switchProductGetter(EDProductGetter const*); 00043 static void assignEDProductGetter(EDProductGetter const*&); 00044 00045 private: 00046 // ---------- member data -------------------------------- 00047 00048 }; 00049 00050 EDProductGetter const* 00051 mustBeNonZero(EDProductGetter const* prodGetter, std::string refType, ProductID const& productID); 00052 } 00053 #endif