00001 #ifndef Utilities_OutletBase_h 00002 #define Utilities_OutletBase_h 00003 // -*- C++ -*- 00004 // 00005 // Package: Utilities 00006 // Class : OutletBase 00007 // 00016 // 00017 // Original Author: Chris Jones 00018 // Created: Fri Sep 22 12:39:16 EDT 2006 00019 // $Id: OutletBase.h,v 1.1 2006/09/22 18:42:58 chrjones Exp $ 00020 // 00021 00022 // system include files 00023 00024 // user include files 00025 #include "FWCore/Utilities/interface/ExtensionCord.h" 00026 00027 // forward declarations 00028 namespace edm { 00029 template <class T> 00030 class OutletBase 00031 { 00032 00033 protected: 00034 OutletBase( ExtensionCord<T>& iCord) : cord_(iCord) {} 00035 virtual ~OutletBase() { this->setGetter(0); } 00036 00037 void setGetter( extensioncord::ECGetterBase<T>* iGetter) { 00038 cord_.setGetter(iGetter); 00039 } 00040 00041 00042 00043 private: 00044 OutletBase(const OutletBase&); // stop default 00045 00046 const OutletBase& operator=(const OutletBase&); // stop default 00047 00048 // ---------- member data -------------------------------- 00049 ExtensionCord<T>& cord_; 00050 }; 00051 } 00052 00053 #endif