CMS 3D CMS Logo

SiStripPayloadMapTableCreator.cc
Go to the documentation of this file.
6 
7 #include <iostream>
8 
10 
11 #include "RelationalAccess/ITransaction.h"
12 #include "RelationalAccess/ISessionProxy.h"
13 #include "RelationalAccess/ISchema.h"
14 #include "RelationalAccess/ITable.h"
15 #include "RelationalAccess/TableDescription.h"
16 #include "CoralBase/Attribute.h"
17 #include "CoralBase/AttributeList.h"
18 #include "CoralBase/TimeStamp.h"
19 
21 public:
22  explicit SiStripPayloadMapTableCreator(const edm::ParameterSet& iConfig);
24  void analyze(const edm::Event& evt, const edm::EventSetup& evtSetup) override;
25  void endJob() override;
26 
27 private:
30 };
31 
33  : m_connectionPool(), m_configMapDb(iConfig.getParameter<std::string>("configMapDatabase")) {
36 }
37 
39 
41  std::shared_ptr<coral::ISessionProxy> cmDbSession = m_connectionPool.createCoralSession(m_configMapDb, true);
42  coral::TableDescription mapTable;
43  mapTable.setName("STRIP_CONFIG_TO_PAYLOAD_MAP");
44  mapTable.insertColumn("CONFIG_HASH", coral::AttributeSpecification::typeNameForType<std::string>());
45  mapTable.insertColumn("PAYLOAD_HASH", coral::AttributeSpecification::typeNameForType<std::string>());
46  mapTable.insertColumn("PAYLOAD_TYPE", coral::AttributeSpecification::typeNameForType<std::string>());
47  mapTable.insertColumn("CONFIG_STRING", coral::AttributeSpecification::typeNameForType<std::string>());
48  mapTable.insertColumn("INSERTION_TIME", coral::AttributeSpecification::typeNameForType<coral::TimeStamp>());
49  mapTable.setPrimaryKey("CONFIG_HASH");
50  mapTable.setNotNullConstraint("CONFIG_HASH");
51  mapTable.setNotNullConstraint("PAYLOAD_HASH");
52  mapTable.setNotNullConstraint("PAYLOAD_TYPE");
53  mapTable.setNotNullConstraint("CONFIG_STRING");
54  mapTable.setNotNullConstraint("INSERTION_TIME");
55 
56  cmDbSession->transaction().start(false);
57  cmDbSession->nominalSchema().createTable(mapTable);
58  cmDbSession->transaction().commit();
59 }
60 
62 
63 // ------
T getParameter(std::string const &) const
cond::persistency::ConnectionPool m_connectionPool
void analyze(const edm::Event &evt, const edm::EventSetup &evtSetup) override
void setParameters(const edm::ParameterSet &connectionPset)
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:16
SiStripPayloadMapTableCreator(const edm::ParameterSet &iConfig)
std::shared_ptr< coral::ISessionProxy > createCoralSession(const std::string &connectionString, bool writeCapable=false)