00001 #ifndef CondCore_IdealGeometryPlugins_IdealGeometryProxy_H 00002 #define CondCore_IdealGeometryPlugins_IdealGeometryProxy_H 00003 00004 #include <iostream> 00005 // user include files 00006 #include "FWCore/Framework/interface/DataProxyTemplate.h" 00007 #include "CondCore/DBCommon/interface/PoolTransaction.h" 00008 #include "CondCore/DBCommon/interface/Connection.h" 00009 #include "CondCore/DBCommon/interface/Exception.h" 00010 #include "DataSvc/Ref.h" 00011 #include "CondCore/PluginSystem/interface/DataProxy.h" 00012 00013 #include "CondFormats/IdealGeometryObjects/interface/PersistentDDDObjects.h" 00014 00015 #include "DetectorDescription/Core/interface/DDCompactView.h" 00016 00017 #include "Geometry/Records/interface/IdealGeometryRecord.h" 00018 00023 template <> 00024 class DataProxy<IdealGeometryRecord, DDCompactView> : public edm::eventsetup::DataProxyTemplate<IdealGeometryRecord, DDCompactView> { 00025 00026 00027 public: 00028 00029 DataProxy( cond::Connection* pooldb, std::map<std::string,std::string>::iterator& pProxyToToken ); 00030 00031 virtual ~DataProxy(); 00032 00033 // ---------- const member functions --------------------- 00034 00035 // ---------- static member functions -------------------- 00036 00037 // ---------- member functions --------------------------- 00038 00039 protected: 00040 const DDCompactView* make(const IdealGeometryRecord& 00041 , const edm::eventsetup::DataKey&); 00042 00043 virtual void invalidateCache(); 00044 00045 private: 00046 00047 const DataProxy& operator=( const DataProxy& ); // stop default 00048 // ---------- member data -------------------------------- 00049 cond::Connection* m_connection; 00050 std::map<std::string,std::string>::iterator m_pDatumToToken; 00051 pool::Ref<PIdealGeometry> m_data; 00052 00053 }; 00054 #endif // CondCore_IdealGeometryPlugins_IdealGeometryProxy_H