CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
CondDBESSource.h
Go to the documentation of this file.
1 #ifndef CondCore_ESSources_CondDBESSource_h
2 #define CondCore_ESSources_CondDBESSource_h
3 //
4 // Package: CondCore/ESSources
5 // Class: CondDBESSource
6 //
7 /*
8  Description: EventSetup source module for serving data from offline database
9 */
10 //
11 // Author: Zhen Xie
12 //
13 // system include files
14 #include <string>
15 #include <map>
16 #include <set>
17 // user include files
19 
24 
25 namespace edm{
26  class ParameterSet;
27 }
28 namespace cond{
29  class DbSession;
30  class BasePayloadProxy;
31  class DataProxyWrapperBase;
32 }
33 
36  public:
37  typedef boost::shared_ptr<cond::DataProxyWrapperBase > ProxyP;
38  typedef std::multimap< std::string, ProxyP> ProxyMap;
39 
41 
42 
43  explicit CondDBESSource( const edm::ParameterSet& );
45 
46  protected:
48  const edm::IOVSyncValue& ,
50 
51  virtual void registerProxies(const edm::eventsetup::EventSetupRecordKey& iRecordKey, KeyedProxies& aProxyList) ;
52 
53  virtual void newInterval(const edm::eventsetup::EventSetupRecordKey& iRecordType, const edm::ValidityInterval& iInterval) ;
54 
55  private:
56 
57  // ----------member data ---------------------------
58 
60 
61  // Container of DataProxy, implemented as multi-map keyed by records
63 
64 
65  typedef std::map< std::string, cond::TagMetadata > TagCollection;
66  // the collections of tag, record/label used in this ESSource
68  std::map<std::string,std::pair<cond::DbSession,std::string> > m_sessionPool;
69  std::map<std::string,unsigned int> m_lastRecordRuns;
70 
71  struct Stats {
72  int nData;
73  int nSet;
74  int nRun;
75  int nLumi;
76  int nRefresh;
80  };
81 
83 
84  unsigned int m_lastRun;
85  unsigned int m_lastLumi;
87 
88  bool m_doDump;
89 
90  private:
91 
92  void fillTagCollectionFromDB( const std::string & coraldb,
93  const std::string & prefix,
94  const std::string & postfix,
95  const std::string& roottag,
96  std::map<std::string,cond::TagMetadata>& replacement);
97 };
98 #endif
std::map< std::string, cond::TagMetadata > TagCollection
std::map< std::string, std::pair< cond::DbSession, std::string > > m_sessionPool
virtual void registerProxies(const edm::eventsetup::EventSetupRecordKey &iRecordKey, KeyedProxies &aProxyList)
cond::DbConnection m_connection
RefreshPolicy m_policy
void fillTagCollectionFromDB(const std::string &coraldb, const std::string &prefix, const std::string &postfix, const std::string &roottag, std::map< std::string, cond::TagMetadata > &replacement)
std::map< std::string, unsigned int > m_lastRecordRuns
std::vector< std::pair< DataKey, boost::shared_ptr< DataProxy > > > KeyedProxies
virtual void setIntervalFor(const edm::eventsetup::EventSetupRecordKey &, const edm::IOVSyncValue &, edm::ValidityInterval &)
std::multimap< std::string, ProxyP > ProxyMap
TagCollection m_tagCollection
ProxyMap m_proxies
unsigned int m_lastRun
virtual void newInterval(const edm::eventsetup::EventSetupRecordKey &iRecordType, const edm::ValidityInterval &iInterval)
called when a new interval of validity occurs for iRecordType
CondDBESSource(const edm::ParameterSet &)
unsigned int m_lastLumi
boost::shared_ptr< cond::DataProxyWrapperBase > ProxyP