CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_3/src/DataFormats/Common/interface/EDProductfwd.h

Go to the documentation of this file.
00001 #ifndef DataFormats_Common_EDProductfwd_h
00002 #define DataFormats_Common_EDProductfwd_h
00003 
00004 /*----------------------------------------------------------------------
00005   
00006 Forward declarations of types in the EDM.
00007 
00008 ----------------------------------------------------------------------*/
00009 #include "boost/shared_ptr.hpp"
00010 
00011 namespace edm 
00012 {
00013   class BasicHandle;
00014   class WrapperHolder;
00015   class WrapperOwningHolder;
00016   class EDProductGetter;
00017   class ProductID;
00018   class OutputHandle;
00019   class RefCore;
00020 
00021   template <typename C, typename T, typename F> class Ref;
00022   template <typename T> class RefToBase;
00023   template <typename K> class RefBase;
00024   template <typename T> class RefProd;
00025   template <typename C, typename T, typename F> class RefVector;
00026   template <class T> class RefToBaseVector;
00027   template <typename T> class RefVectorBase;
00028   template <typename C, typename T, typename F> class RefVectorIterator;
00029   template <typename T> class Wrapper;
00030   template <typename T> class Handle;
00031   template <typename T> class OrphanHandle;
00032 
00033   namespace reftobase
00034   {
00035     template <typename T>  class BaseHolder;
00036     template <typename T, class REF> class Holder;
00037     class RefHolderBase;
00038     template <typename T> class IndirectHolder;
00039     template <typename REF> class RefHolder;
00040     class RefVectorHolderBase;
00041     template <class T> class BaseVectorHolder;
00042     template <class T, class REFVECTOR> class VectorHolder;
00043   }
00044   typedef boost::shared_ptr<reftobase::RefHolderBase> helper_ptr;
00045   typedef reftobase::RefVectorHolderBase helper_vector;
00046   typedef boost::shared_ptr<reftobase::RefVectorHolderBase> helper_vector_ptr;
00047 }
00048 
00049 #endif