CMS 3D CMS Logo

DelayedReader.h

Go to the documentation of this file.
00001 #ifndef FWCore_Framework_DelayedReader_h
00002 #define FWCore_Framework_DelayedReader_h
00003 
00004 /*----------------------------------------------------------------------
00005   
00006 DelayedReader: The abstract interface through which the EventPrincipal
00007 uses input sources to retrieve EDProducts from external storage.
00008 
00009 ----------------------------------------------------------------------*/
00010 
00011 #include <memory>
00012 #include "boost/shared_ptr.hpp"
00013 #include "DataFormats/Common/interface/EDProduct.h"
00014 
00015 namespace edm {
00016   class BranchKey;
00017   class EDProductGetter;
00018   class DelayedReader {
00019   public:
00020     virtual ~DelayedReader();
00021     std::auto_ptr<EDProduct> getProduct(BranchKey const& k, EDProductGetter const* ep) {
00022       return getProduct_(k, ep);
00023     }
00024     void mergeReaders(boost::shared_ptr<DelayedReader> other) {mergeReaders_(other);}
00025   private:
00026     virtual std::auto_ptr<EDProduct> getProduct_(BranchKey const& k, EDProductGetter const* ep) const = 0;
00027     virtual void mergeReaders_(boost::shared_ptr<DelayedReader>) {}
00028   };
00029 }
00030 
00031 #endif

Generated on Tue Jun 9 17:35:28 2009 for CMSSW by  doxygen 1.5.4