CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_5_3_14/src/DataFormats/Common/interface/EDProductGetter.h

Go to the documentation of this file.
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