CMS 3D CMS Logo

List of all members | Classes | Public Member Functions | Private Member Functions | Private Attributes
cond::service::PoolDBOutputService Class Reference

#include <PoolDBOutputService.h>

Classes

struct  Record
 

Public Member Functions

template<typename T >
void appendSinceTime (T *payloadObj, cond::Time_t sinceTime, const std::string &recordName, bool withlogging=false)
 
void appendSinceTime (const std::string &payloadId, cond::Time_t sinceTime, const std::string &recordName, bool withlogging=false)
 
cond::Time_t beginOfTime () const
 
void closeIOV (Time_t lastTill, const std::string &recordName, bool withlogging=false)
 
template<typename T >
void createNewIOV (T *firstPayloadObj, cond::Time_t firstSinceTime, cond::Time_t firstTillTime, const std::string &recordName, bool withlogging=false)
 
void createNewIOV (const std::string &firstPayloadId, const std::string payloadType, cond::Time_t firstSinceTime, cond::Time_t firstTillTime, const std::string &recordName, bool withlogging=false)
 
void createNewIOV (const std::string &firstPayloadId, cond::Time_t firstSinceTime, cond::Time_t firstTillTime, const std::string &recordName, bool withlogging=false)
 
cond::Time_t currentTime () const
 
cond::Time_t endOfTime () const
 
void forceInit ()
 
bool isNewTagRequest (const std::string &recordName)
 
 PoolDBOutputService (const edm::ParameterSet &iConfig, edm::ActivityRegistry &iAR)
 
void postEndJob ()
 
cond::persistency::Session session () const
 
void setLogHeaderForRecord (const std::string &recordName, const std::string &provenance, const std::string &usertext)
 
std::string tag (const std::string &recordName)
 
void tagInfo (const std::string &recordName, cond::TagInfo_t &result)
 
template<typename T >
void writeOne (T *payload, Time_t time, const std::string &recordName, bool withlogging=false)
 
virtual ~PoolDBOutputService ()
 

Private Member Functions

void connect ()
 
void disconnect ()
 
void fillRecord (edm::ParameterSet &pset)
 
void initDB (bool dummy=false)
 
RecordlookUpRecord (const std::string &recordName)
 
cond::UserLogInfolookUpUserLogInfo (const std::string &recordName)
 
void postModuleEvent (edm::StreamContext const &, edm::ModuleCallingContext const &)
 
void preEventProcessing (edm::StreamContext const &)
 
void preGlobalBeginLumi (edm::GlobalContext const &)
 
void preGlobalBeginRun (edm::GlobalContext const &)
 
void preModuleEvent (edm::StreamContext const &, edm::ModuleCallingContext const &)
 

Private Attributes

std::map< std::string, Recordm_callbacks
 
bool m_closeIOV
 
std::vector< cond::Time_tm_currentTimes
 
bool m_dbstarted
 
std::map< std::string, cond::UserLogInfom_logheaders
 
std::recursive_mutex m_mutex
 
std::vector< std::pair< std::string, std::string > > m_newtags
 
cond::persistency::Session m_session
 
cond::TimeType m_timetype
 
std::string m_timetypestr
 

Detailed Description

Definition at line 36 of file PoolDBOutputService.h.

Constructor & Destructor Documentation

PoolDBOutputService::PoolDBOutputService ( const edm::ParameterSet iConfig,
edm::ActivityRegistry iAR 
)

Definition at line 38 of file PoolDBOutputService.cc.

References l1RCTOmdsFedVectorProducer_cfi::connectionString, fillRecord(), edm::ParameterSet::getParameter(), cond::lumiid, m_callbacks, m_closeIOV, m_currentTimes, m_dbstarted, m_logheaders, m_session, m_timetype, m_timetypestr, edm::service::SystemBounds::maxNumberOfStreams(), postEndJob(), postModuleEvent(), preEventProcessing(), preGlobalBeginLumi(), preGlobalBeginRun(), preModuleEvent(), cond::runnumber, s_streamIndex, cond::persistency::ConnectionPool::setParameters(), AlCaHLTBitMon_QueryRunRegistry::string, cond::timestamp, cond::time::timeTypeFromName(), and DBConfiguration_cff::toPut.

39  : m_timetypestr(""),
41  m_session(),
42  m_dbstarted(false),
43  m_callbacks(),
44  m_closeIOV(false),
45  m_logheaders() {
46  m_closeIOV = iConfig.getUntrackedParameter<bool>("closeIOV", m_closeIOV);
47 
48  m_timetypestr = iConfig.getUntrackedParameter<std::string>("timetype", "runnumber");
50 
51  edm::ParameterSet connectionPset = iConfig.getParameter<edm::ParameterSet>("DBParameters");
53  connection.setParameters(connectionPset);
54  connection.configure();
56  m_session = connection.createSession(connectionString, true);
57 
58  typedef std::vector<edm::ParameterSet> Parameters;
59  Parameters toPut = iConfig.getParameter<Parameters>("toPut");
60  for (Parameters::iterator itToPut = toPut.begin(); itToPut != toPut.end(); ++itToPut)
61  fillRecord(*itToPut);
62 
64  iAR.watchPreallocate(
65  [this](edm::service::SystemBounds const& iBounds) { m_currentTimes.resize(iBounds.maxNumberOfStreams()); });
66  if (m_timetype == cond::timestamp) { //timestamp
70  } else if (m_timetype == cond::runnumber) { //runnumber
71  //NOTE: this assumes only one run is being processed at a time.
72  // This is true for 7_1_X but plan are to allow multiple in flight at a time
73  s_streamIndex = 0;
75  } else if (m_timetype == cond::lumiid) {
76  //NOTE: this assumes only one lumi is being processed at a time.
77  // This is true for 7_1_X but plan are to allow multiple in flight at a time
78  s_streamIndex = 0;
80  }
81 }
static thread_local int s_streamIndex
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
void watchPreEvent(PreEvent::slot_type const &iSlot)
void watchPreallocate(Preallocate::slot_type const &iSlot)
void watchPostEndJob(PostEndJob::slot_type const &iSlot)
void preEventProcessing(edm::StreamContext const &)
void watchPreModuleEvent(PreModuleEvent::slot_type const &iSlot)
void fillRecord(edm::ParameterSet &pset)
std::map< std::string, cond::UserLogInfo > m_logheaders
void watchPreGlobalBeginLumi(PreGlobalBeginLumi::slot_type const &iSlot)
std::vector< cond::Time_t > m_currentTimes
void watchPostModuleEvent(PostModuleEvent::slot_type const &iSlot)
void preGlobalBeginLumi(edm::GlobalContext const &)
void setParameters(const edm::ParameterSet &connectionPset)
unsigned int maxNumberOfStreams() const
Definition: SystemBounds.h:35
vector< ParameterSet > Parameters
TimeType timeTypeFromName(const std::string &name)
Definition: Time.cc:25
cond::persistency::Session m_session
void watchPreGlobalBeginRun(PreGlobalBeginRun::slot_type const &iSlot)
void preGlobalBeginRun(edm::GlobalContext const &)
void postModuleEvent(edm::StreamContext const &, edm::ModuleCallingContext const &)
std::map< std::string, Record > m_callbacks
void preModuleEvent(edm::StreamContext const &, edm::ModuleCallingContext const &)
PoolDBOutputService::~PoolDBOutputService ( )
virtual

Member Function Documentation

template<typename T >
void cond::service::PoolDBOutputService::appendSinceTime ( T payloadObj,
cond::Time_t  sinceTime,
const std::string &  recordName,
bool  withlogging = false 
)
inline

Definition at line 107 of file PoolDBOutputService.h.

References align_cfg::recordName, mps_fire::result, AlCaHLTBitMon_QueryRunRegistry::string, dumpRecoGeometry_cfg::tagInfo, and cond::persistency::throwException().

Referenced by SiStripApvSimulationParametersBuilder::analyze(), DBWriter::analyze(), SiStripDetVOffFakeBuilder::analyze(), SiStripNoisesBuilder::analyze(), SiStripPedestalsBuilder::analyze(), SiStripSummaryBuilder::analyze(), SiStripThresholdBuilder::analyze(), SiStripApvGainBuilder::analyze(), WriteEcalMiscalibConstants::analyze(), WriteEcalMiscalibConstantsMC::analyze(), SiStripNoiseNormalizedWithApvGainBuilder::analyze(), SiStripApvGainBuilderFromTag::analyze(), EcalTestDevDB::analyze(), BTagCalibrationDbCreator::beginJob(), PhysicsPerformanceDBWriterTFormula_fromfile_WPandPL::beginJob(), PhysicsPerformanceDBWriterFromFile_WPandPayload::beginJob(), PhysicsPerformanceDBWriterFromFile_WPandPayload_IOV::beginJob(), JetCorrectorDBWriter::beginJob(), QGLikelihoodSystematicsDBWriter::beginJob(), QGLikelihoodDBWriter::beginJob(), SiStripFedCablingBuilder::beginRun(), CocoaDBMgr::DumpCocoaResults(), BeamSpotWrite2DB::endJob(), CentralityTableProducer::endJob(), StoreESCondition::endJob(), StoreEcalCondition::endJob(), SiStripFedCablingManipulator::endRun(), HLTPrescaleRecorder::endRun(), SiStripBadChannelBuilder::getNewObject(), l1t::DataWriter::updateIOV(), l1t::DataWriterExt::updateIOV(), CaloGeometryDBWriter::write(), BeamFitter::write2DB(), AlCaRecoTriggerBitsRcdUpdate::writeBitsToDB(), and CaloGeometryDBWriter::writeIndexed().

110  {
111  if (!payloadObj)
112  throwException("Provided payload pointer is invalid.", "PoolDBOutputService::appendSinceTime");
113  appendSinceTime(m_session.storePayload(*payloadObj), sinceTime, recordName, withlogging);
114  }
void throwException(const std::string &message, const std::string &methodName)
Definition: Exception.cc:18
void appendSinceTime(T *payloadObj, cond::Time_t sinceTime, const std::string &recordName, bool withlogging=false)
cond::persistency::Session m_session
cond::Hash storePayload(const T &payload, const boost::posix_time::ptime &creationTime=boost::posix_time::microsec_clock::universal_time())
Definition: Session.h:197
void PoolDBOutputService::appendSinceTime ( const std::string &  payloadId,
cond::Time_t  sinceTime,
const std::string &  recordName,
bool  withlogging = false 
)

Definition at line 224 of file PoolDBOutputService.cc.

References a, cond::persistency::Session::editIov(), cppFunctionSkipper::exception, cond::persistency::IOVEditor::flush(), cond::persistency::IOVEditor::insert(), CommonMethods::lock(), lookUpRecord(), lookUpUserLogInfo(), m_mutex, m_session, cond::persistency::IOVEditor::payloadType(), HLT_2018_cff::payloadType, AlCaHLTBitMon_QueryRunRegistry::string, cond::throwException(), cond::persistency::Session::transaction(), and cond::UserLogInfo::usertext.

227  {
228  std::lock_guard<std::recursive_mutex> lock(m_mutex);
230  Record& myrecord = this->lookUpRecord(recordName);
231  if (myrecord.m_isNewTag) {
232  cond::throwException(std::string("Cannot append to non-existing tag ") + myrecord.m_tag,
233  "PoolDBOutputService::appendSinceTime");
234  }
236  try {
237  cond::persistency::IOVEditor editor = m_session.editIov(myrecord.m_tag);
238  payloadType = editor.payloadType();
239  editor.insert(time, payloadId);
241  editor.flush(a.usertext);
242 
243  } catch (const std::exception& er) {
244  cond::throwException(std::string(er.what()), "PoolDBOutputService::appendSinceTime");
245  }
246  scope.close();
247 }
Transaction & transaction()
Definition: Session.cc:43
void throwException(const std::string &message, const std::string &methodName)
Definition: Exception.cc:18
Record & lookUpRecord(const std::string &recordName)
cond::persistency::Session m_session
IOVEditor editIov(const std::string &tag)
Definition: Session.cc:139
void insert(cond::Time_t since, const cond::Hash &payloadHash, bool checkType=false)
Definition: IOVEditor.cc:136
std::string usertext
Definition: Types.h:24
double a
Definition: hdecay.h:119
std::string payloadType() const
Definition: IOVEditor.cc:85
cond::UserLogInfo & lookUpUserLogInfo(const std::string &recordName)
cond::Time_t PoolDBOutputService::beginOfTime ( ) const

Definition at line 156 of file PoolDBOutputService.cc.

References cond::TimeTypeSpecs::beginValue, m_timetype, and cond::timeTypeSpecs.

Referenced by SiStripApvSimulationParametersBuilder::analyze(), DBWriter::analyze(), L1TMuonOverlapParamsWriter::analyze(), L1KeyListWriter::analyze(), L1KeyWriter::analyze(), SiStripDetVOffFakeBuilder::analyze(), SiStripNoisesBuilder::analyze(), L1TCaloParamsUpdater::analyze(), SiStripApvGainBuilder::analyze(), SiStripPedestalsBuilder::analyze(), SiStripSummaryBuilder::analyze(), SiStripThresholdBuilder::analyze(), EcalPFRecHitThresholdsMaker::analyze(), L1TMuonGlobalParamsWriter::analyze(), L1TCaloStage2ParamsWriter::analyze(), L1TGlobalPrescalesVetosWriter::analyze(), L1TMuonBarrelParamsWriter::analyze(), L1TMuonEndCapParamsWriter::analyze(), L1MenuWriter::analyze(), L1TMuonEndCapForestWriter::analyze(), SurveyInputTrackerFromDB::analyze(), GBRForestWriter::analyze(), WriteEcalMiscalibConstantsMC::analyze(), WriteEcalMiscalibConstants::analyze(), TrackerSystematicMisalignments::analyze(), SiStripNoiseNormalizedWithApvGainBuilder::analyze(), SiStripApvGainBuilderFromTag::analyze(), EcalTestDevDB::analyze(), TrackerGeometryCompare::analyze(), BTagCalibrationDbCreator::beginJob(), PhysicsPerformanceDBWriterTFormula_fromfile_WPandPL::beginJob(), PhysicsPerformanceDBWriterFromFile_WPandPayload::beginJob(), JetResolutionDBWriter::beginJob(), XMLGeometryBuilder::beginJob(), JetCorrectorDBWriter::beginJob(), QGLikelihoodSystematicsDBWriter::beginJob(), QGLikelihoodDBWriter::beginJob(), SiStripFedCablingBuilder::beginRun(), HcalParametersDBBuilder::beginRun(), PTrackerParametersDBBuilder::beginRun(), ME0RecoIdealDBLoader::beginRun(), GEMRecoIdealDBLoader::beginRun(), DTRecoIdealDBLoader::beginRun(), GeometricTimingDetLoader::beginRun(), GeometricDetLoader::beginRun(), CSCRecoIdealDBLoader::beginRun(), PHGCalParametersDBBuilder::beginRun(), RPCRecoIdealDBLoader::beginRun(), PGeometricDetBuilder::beginRun(), PGeometricDetExtraBuilder::beginRun(), EcalTPGDBCopy::copyToDB(), EcalDBCopy::copyToDB(), ESDBCopy::copyToDB(), CocoaDBMgr::DumpCocoaResults(), BeamSpotWrite2DB::endJob(), CentralityTableProducer::endJob(), StoreESCondition::endJob(), BeamProfile2DB::endJob(), StoreEcalCondition::endJob(), SiStripFedCablingManipulator::endRun(), DummyCondDBWriter< TObject, TObjectO, TRecord >::endRun(), HLTPrescaleRecorder::endRun(), LaserAlignment::endRunProduce(), SiStripBadChannelBuilder::getNewObject(), MisalignedMuonESProducer::saveToDB(), ConditionDBWriter< SiStripApvGain >::storeOnDb(), l1t::DataWriterExt::updateIOV(), l1t::DataWriter::updateIOV(), CaloGeometryDBWriter::write(), BeamFitter::write2DB(), CaloGeometryDBWriter::writeIndexed(), and DTCalibDBUtils::writeToDB().

const TimeTypeSpecs timeTypeSpecs[]
Definition: Time.cc:16
Time_t beginValue
Definition: Time.h:41
void PoolDBOutputService::closeIOV ( Time_t  lastTill,
const std::string &  recordName,
bool  withlogging = false 
)

Definition at line 277 of file PoolDBOutputService.cc.

References cond::persistency::Session::editIov(), cond::persistency::IOVEditor::flush(), CommonMethods::lock(), lookUpRecord(), cond::service::PoolDBOutputService::Record::m_isNewTag, m_mutex, m_session, cond::service::PoolDBOutputService::Record::m_tag, cond::persistency::IOVEditor::setEndOfValidity(), AlCaHLTBitMon_QueryRunRegistry::string, cond::throwException(), and cond::persistency::Session::transaction().

Referenced by popcon::PopCon::finalize().

277  {
278  std::lock_guard<std::recursive_mutex> lock(m_mutex);
279  // not fully working.. not be used for now...
280  Record& myrecord = lookUpRecord(recordName);
282 
283  if (myrecord.m_isNewTag) {
284  cond::throwException(std::string("Cannot close non-existing tag ") + myrecord.m_tag,
285  "PoolDBOutputService::closeIOV");
286  }
287  cond::persistency::IOVEditor editor = m_session.editIov(myrecord.m_tag);
288  editor.setEndOfValidity(lastTill);
289  editor.flush("Tag closed.");
290  scope.close();
291 }
Transaction & transaction()
Definition: Session.cc:43
void throwException(const std::string &message, const std::string &methodName)
Definition: Exception.cc:18
Record & lookUpRecord(const std::string &recordName)
cond::persistency::Session m_session
IOVEditor editIov(const std::string &tag)
Definition: Session.cc:139
void setEndOfValidity(cond::Time_t validity)
Definition: IOVEditor.cc:101
void cond::service::PoolDBOutputService::connect ( )
private

Referenced by Vispa.Gui.ZoomableScrollArea.ZoomableScrollArea::__init__(), Vispa.Views.PropertyView.BooleanProperty::__init__(), Vispa.Gui.FindDialog.FindDialog::_addScript(), Vispa.Gui.FindDialog.FindDialog::_addStringProperty(), Vispa.Main.Application.Application::_connectSignals(), Vispa.Plugins.ConfigEditor.CodeTableView.CodeTableView::_createItem(), Vispa.Gui.BoxContentDialog.BoxContentDialog::addButton(), Vispa.Gui.ToolBoxContainer.ToolBoxContainer::addWidget(), Vispa.Views.PropertyView.PropertyView::append(), Vispa.Views.PropertyView.PropertyView::appendAddRow(), Vispa.Main.Application.Application::createAction(), Vispa.Views.PropertyView.TextEditWithButtonProperty::createButton(), Vispa.Views.LineDecayView.LineDecayView::createLineDecayContainer(), Vispa.Views.PropertyView.TextEditWithButtonProperty::createLineEdit(), Vispa.Views.LineDecayView.LineDecayContainer::createObject(), Vispa.Views.PropertyView.TextEditWithButtonProperty::createTextEdit(), Vispa.Plugins.Browser.BrowserTabController.BrowserTabController::filterDialog(), Vispa.Plugins.Browser.BrowserTabController.BrowserTabController::find(), Vispa.Gui.PortWidget.PortWidget::mouseMoveEvent(), Vispa.Views.PropertyView.BooleanProperty::setChecked(), Vispa.Main.SplitterTab.SplitterTab::setController(), Vispa.Plugins.Browser.BrowserTab.BrowserTab::setController(), Vispa.Views.PropertyView.BooleanProperty::setReadOnly(), Vispa.Views.PropertyView.DropDownProperty::setReadOnly(), Vispa.Views.PropertyView.TextEditWithButtonProperty::setReadOnly(), Vispa.Plugins.Browser.BrowserTabController.BrowserTabController::setTab(), Vispa.Views.PropertyView.IntegerProperty::setValue(), Vispa.Plugins.Browser.BrowserTabController.BrowserTabController::switchCenterView(), o2o_db_cfgmap.DbManagerDAQ::update_hashmap(), Vispa.Plugins.EdmBrowser.EdmBrowserTabController.EdmBrowserTabController::updateViewMenu(), and Vispa.Plugins.ConfigEditor.ConfigEditorTabController.ConfigEditorTabController::updateViewMenu().

template<typename T >
void cond::service::PoolDBOutputService::createNewIOV ( T firstPayloadObj,
cond::Time_t  firstSinceTime,
cond::Time_t  firstTillTime,
const std::string &  recordName,
bool  withlogging = false 
)
inline

Definition at line 73 of file PoolDBOutputService.h.

References CommonMethods::lock(), HLT_2018_cff::payloadType, align_cfg::recordName, AlCaHLTBitMon_QueryRunRegistry::string, and cond::persistency::throwException().

Referenced by SiStripApvSimulationParametersBuilder::analyze(), DBWriter::analyze(), SiStripNoisesBuilder::analyze(), SiStripDetVOffFakeBuilder::analyze(), SiStripPedestalsBuilder::analyze(), SiStripSummaryBuilder::analyze(), SiStripThresholdBuilder::analyze(), SiStripApvGainBuilder::analyze(), EcalPFRecHitThresholdsMaker::analyze(), WriteEcalMiscalibConstantsMC::analyze(), WriteEcalMiscalibConstants::analyze(), SiStripNoiseNormalizedWithApvGainBuilder::analyze(), SiStripApvGainBuilderFromTag::analyze(), EcalTestDevDB::analyze(), BTagCalibrationDbCreator::beginJob(), PhysicsPerformanceDBWriterTFormula_fromfile_WPandPL::beginJob(), PhysicsPerformanceDBWriterFromFile_WPandPayload_IOV::beginJob(), PhysicsPerformanceDBWriterFromFile_WPandPayload::beginJob(), XMLGeometryBuilder::beginJob(), JetCorrectorDBWriter::beginJob(), QGLikelihoodSystematicsDBWriter::beginJob(), QGLikelihoodDBWriter::beginJob(), SiStripFedCablingBuilder::beginRun(), HcalParametersDBBuilder::beginRun(), PTrackerParametersDBBuilder::beginRun(), GEMRecoIdealDBLoader::beginRun(), ME0RecoIdealDBLoader::beginRun(), DTRecoIdealDBLoader::beginRun(), GeometricTimingDetLoader::beginRun(), GeometricDetLoader::beginRun(), CSCRecoIdealDBLoader::beginRun(), RPCRecoIdealDBLoader::beginRun(), PGeometricDetExtraBuilder::beginRun(), PHGCalParametersDBBuilder::beginRun(), PGeometricDetBuilder::beginRun(), EcalTPGDBCopy::copyToDB(), EcalDBCopy::copyToDB(), ESDBCopy::copyToDB(), CocoaDBMgr::DumpCocoaResults(), BeamSpotWrite2DB::endJob(), CentralityTableProducer::endJob(), BeamProfile2DB::endJob(), StoreESCondition::endJob(), StoreEcalCondition::endJob(), SiStripFedCablingManipulator::endRun(), HLTPrescaleRecorder::endRun(), SiStripBadChannelBuilder::getNewObject(), l1t::DataWriter::updateIOV(), l1t::DataWriterExt::updateIOV(), CaloGeometryDBWriter::write(), BeamFitter::write2DB(), AlCaRecoTriggerBitsRcdUpdate::writeBitsToDB(), and CaloGeometryDBWriter::writeIndexed().

77  {
78  if (!firstPayloadObj)
79  throwException("Provided payload pointer is invalid.", "PoolDBOutputService::createNewIOV");
80  std::lock_guard<std::recursive_mutex> lock(m_mutex);
81  if (!m_dbstarted)
82  this->initDB();
83  createNewIOV(m_session.storePayload(*firstPayloadObj),
84  cond::demangledName(typeid(T)),
85  firstSinceTime,
86  firstTillTime,
87  recordName,
88  withlogging);
89  }
void throwException(const std::string &message, const std::string &methodName)
Definition: Exception.cc:18
cond::persistency::Session m_session
void createNewIOV(T *firstPayloadObj, cond::Time_t firstSinceTime, cond::Time_t firstTillTime, const std::string &recordName, bool withlogging=false)
cond::Hash storePayload(const T &payload, const boost::posix_time::ptime &creationTime=boost::posix_time::microsec_clock::universal_time())
Definition: Session.h:197
long double T
void PoolDBOutputService::createNewIOV ( const std::string &  firstPayloadId,
const std::string  payloadType,
cond::Time_t  firstSinceTime,
cond::Time_t  firstTillTime,
const std::string &  recordName,
bool  withlogging = false 
)

Definition at line 163 of file PoolDBOutputService.cc.

References a, cond::persistency::Session::createIov(), cppFunctionSkipper::exception, cond::persistency::IOVEditor::flush(), cond::persistency::IOVEditor::insert(), CommonMethods::lock(), lookUpRecord(), lookUpUserLogInfo(), m_mutex, m_session, cond::persistency::IOVEditor::setDescription(), AlCaHLTBitMon_QueryRunRegistry::string, cond::SYNCH_ANY, cond::throwException(), cond::persistency::Session::transaction(), and cond::UserLogInfo::usertext.

168  {
169  std::lock_guard<std::recursive_mutex> lock(m_mutex);
170 
172  Record& myrecord = this->lookUpRecord(recordName);
173  if (!myrecord.m_isNewTag) {
174  cond::throwException(myrecord.m_tag + " is not a new tag", "PoolDBOutputService::createNewIOV");
175  }
176  std::string iovToken;
177 
178  try {
179  // FIX ME: synchronization type and description have to be passed as the other parameters?
181  m_session.createIov(payloadType, myrecord.m_tag, myrecord.m_timetype, cond::SYNCH_ANY);
182  editor.setDescription("New Tag");
183  editor.insert(firstSinceTime, firstPayloadId);
185  editor.flush(a.usertext);
186  myrecord.m_isNewTag = false;
187  } catch (const std::exception& er) {
188  cond::throwException(std::string(er.what()) + " from PoolDBOutputService::createNewIOV ",
189  "PoolDBOutputService::createNewIOV");
190  }
191  scope.close();
192 }
IOVEditor createIov(const std::string &tag, cond::TimeType timeType, cond::SynchronizationType synchronizationType=cond::SYNCH_ANY)
Definition: Session.h:190
void setDescription(const std::string &description)
Definition: IOVEditor.cc:111
Transaction & transaction()
Definition: Session.cc:43
void throwException(const std::string &message, const std::string &methodName)
Definition: Exception.cc:18
Record & lookUpRecord(const std::string &recordName)
cond::persistency::Session m_session
void insert(cond::Time_t since, const cond::Hash &payloadHash, bool checkType=false)
Definition: IOVEditor.cc:136
std::string usertext
Definition: Types.h:24
double a
Definition: hdecay.h:119
cond::UserLogInfo & lookUpUserLogInfo(const std::string &recordName)
void PoolDBOutputService::createNewIOV ( const std::string &  firstPayloadId,
cond::Time_t  firstSinceTime,
cond::Time_t  firstTillTime,
const std::string &  recordName,
bool  withlogging = false 
)

Definition at line 194 of file PoolDBOutputService.cc.

References a, cond::persistency::Session::createIovForPayload(), cppFunctionSkipper::exception, cond::persistency::IOVEditor::flush(), cond::persistency::IOVEditor::insert(), CommonMethods::lock(), lookUpRecord(), lookUpUserLogInfo(), m_mutex, m_session, cond::persistency::IOVEditor::payloadType(), HLT_2018_cff::payloadType, cond::persistency::IOVEditor::setDescription(), AlCaHLTBitMon_QueryRunRegistry::string, cond::SYNCH_ANY, cond::throwException(), cond::persistency::Session::transaction(), and cond::UserLogInfo::usertext.

198  {
199  std::lock_guard<std::recursive_mutex> lock(m_mutex);
201  Record& myrecord = this->lookUpRecord(recordName);
202  if (!myrecord.m_isNewTag) {
203  cond::throwException(myrecord.m_tag + " is not a new tag", "PoolDBOutputService::createNewIOV");
204  }
205  std::string iovToken;
207  try {
208  // FIX ME: synchronization type and description have to be passed as the other parameters?
210  m_session.createIovForPayload(firstPayloadId, myrecord.m_tag, myrecord.m_timetype, cond::SYNCH_ANY);
211  editor.setDescription("New Tag");
212  payloadType = editor.payloadType();
213  editor.insert(firstSinceTime, firstPayloadId);
215  editor.flush(a.usertext);
216  myrecord.m_isNewTag = false;
217  } catch (const std::exception& er) {
218  cond::throwException(std::string(er.what()) + " from PoolDBOutputService::createNewIOV ",
219  "PoolDBOutputService::createNewIOV");
220  }
221  scope.close();
222 }
void setDescription(const std::string &description)
Definition: IOVEditor.cc:111
Transaction & transaction()
Definition: Session.cc:43
void throwException(const std::string &message, const std::string &methodName)
Definition: Exception.cc:18
Record & lookUpRecord(const std::string &recordName)
cond::persistency::Session m_session
void insert(cond::Time_t since, const cond::Hash &payloadHash, bool checkType=false)
Definition: IOVEditor.cc:136
std::string usertext
Definition: Types.h:24
double a
Definition: hdecay.h:119
IOVEditor createIovForPayload(const Hash &payloadHash, const std::string &tag, cond::TimeType timeType, cond::SynchronizationType synchronizationType=cond::SYNCH_ANY)
Definition: Session.cc:123
std::string payloadType() const
Definition: IOVEditor.cc:85
cond::UserLogInfo & lookUpUserLogInfo(const std::string &recordName)
cond::Time_t PoolDBOutputService::currentTime ( ) const

Definition at line 158 of file PoolDBOutputService.cc.

References m_currentTimes, and s_streamIndex.

Referenced by SiStripApvSimulationParametersBuilder::analyze(), DBWriter::analyze(), SiStripNoisesBuilder::analyze(), SiStripDetVOffFakeBuilder::analyze(), L1MuonOverlapParamsDBProducer::analyze(), SiStripPedestalsBuilder::analyze(), SiStripSummaryBuilder::analyze(), SiStripThresholdBuilder::analyze(), SiStripApvGainBuilder::analyze(), WriteEcalMiscalibConstantsMC::analyze(), WriteEcalMiscalibConstants::analyze(), PPSTimingCalibrationWriter::analyze(), BufferedBoostIODBWriter::analyze(), SiStripNoiseNormalizedWithApvGainBuilder::analyze(), SiStripApvGainBuilderFromTag::analyze(), AlignPCLThresholdsWriter::analyze(), FFTJetCorrectorDBWriter::analyze(), BoostIODBWriter< DataType >::analyze(), SiStripApvGainRescaler::analyze(), SiStripChannelGainFromDBMiscalibrator::analyze(), SiStripNoisesFromDBMiscalibrator::analyze(), JetResolutionDBWriter::beginJob(), SiStripFedCablingBuilder::beginRun(), ECALpedestalPCLHarvester::dqmEndJob(), SiStripGainsPCLHarvester::dqmEndJob(), CocoaDBMgr::DumpCocoaResults(), BeamSpotWrite2DB::endJob(), SurveyDBUploader::endJob(), Mixing2DB::endJob(), CentralityTableProducer::endJob(), SiStripFedCablingManipulator::endRun(), DummyCondDBWriter< TObject, TObjectO, TRecord >::endRun(), WriteCTPPSPixGainCalibrations::fillDB(), SiStripBadChannelBuilder::getNewObject(), popcon::L1RPCHwConfigSourceHandler::getNewObjects(), popcon::RPCEMapSourceHandler::getNewObjects(), MisalignedTrackerESProducer::produce(), MuonAlignment::saveCSCSurveyToDB(), MuonAlignment::saveCSCtoDB(), MuonAlignment::saveDTSurveyToDB(), MuonAlignment::saveDTtoDB(), TrackerAlignment::saveToDB(), ConditionDBWriter< SiStripApvGain >::setTime(), CaloGeometryDBWriter::write(), WriteESAlignments::write(), BeamFitter::write2DB(), GlobalTrackerMuonAlignment::writeGlPosRcd(), CaloGeometryDBWriter::writeIndexed(), and DTCalibDBUtils::writeToDB().

158  {
159  assert(-1 != s_streamIndex);
161 }
static thread_local int s_streamIndex
std::vector< cond::Time_t > m_currentTimes
void cond::service::PoolDBOutputService::disconnect ( )
private
cond::Time_t PoolDBOutputService::endOfTime ( ) const

Definition at line 154 of file PoolDBOutputService.cc.

References cond::TimeTypeSpecs::endValue, m_timetype, and cond::timeTypeSpecs.

Referenced by SiStripApvSimulationParametersBuilder::analyze(), EcalDQMStatusWriter::analyze(), DBWriter::analyze(), SiStripDetVOffFakeBuilder::analyze(), SiStripNoisesBuilder::analyze(), SiStripPedestalsBuilder::analyze(), SiStripThresholdBuilder::analyze(), SiStripSummaryBuilder::analyze(), SiStripApvGainBuilder::analyze(), EcalPFRecHitThresholdsMaker::analyze(), WriteEcalMiscalibConstantsMC::analyze(), WriteEcalMiscalibConstants::analyze(), SiStripNoiseNormalizedWithApvGainBuilder::analyze(), SiStripApvGainBuilderFromTag::analyze(), EcalTestDevDB::analyze(), BTagCalibrationDbCreator::beginJob(), PhysicsPerformanceDBWriterTFormula_fromfile_WPandPL::beginJob(), PhysicsPerformanceDBWriterFromFile_WPandPayload::beginJob(), XMLGeometryBuilder::beginJob(), JetCorrectorDBWriter::beginJob(), QGLikelihoodSystematicsDBWriter::beginJob(), QGLikelihoodDBWriter::beginJob(), SiStripFedCablingBuilder::beginRun(), HcalParametersDBBuilder::beginRun(), PTrackerParametersDBBuilder::beginRun(), GEMRecoIdealDBLoader::beginRun(), ME0RecoIdealDBLoader::beginRun(), DTRecoIdealDBLoader::beginRun(), GeometricTimingDetLoader::beginRun(), GeometricDetLoader::beginRun(), CSCRecoIdealDBLoader::beginRun(), RPCRecoIdealDBLoader::beginRun(), PGeometricDetExtraBuilder::beginRun(), PGeometricDetBuilder::beginRun(), PHGCalParametersDBBuilder::beginRun(), EcalTPGDBCopy::copyToDB(), EcalDBCopy::copyToDB(), ESDBCopy::copyToDB(), CocoaDBMgr::DumpCocoaResults(), BeamSpotWrite2DB::endJob(), CentralityTableProducer::endJob(), BeamProfile2DB::endJob(), StoreESCondition::endJob(), StoreEcalCondition::endJob(), SiStripFedCablingManipulator::endRun(), HLTPrescaleRecorder::endRun(), SiStripBadChannelBuilder::getNewObject(), l1t::DataWriterExt::updateIOV(), l1t::DataWriter::updateIOV(), CaloGeometryDBWriter::write(), BeamFitter::write2DB(), AlCaRecoTriggerBitsRcdUpdate::writeBitsToDB(), and CaloGeometryDBWriter::writeIndexed().

154 { return timeTypeSpecs[m_timetype].endValue; }
const TimeTypeSpecs timeTypeSpecs[]
Definition: Time.cc:16
Time_t endValue
Definition: Time.h:42
void PoolDBOutputService::fillRecord ( edm::ParameterSet pset)
private

Definition at line 21 of file PoolDBOutputService.cc.

References edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), m_callbacks, cond::service::PoolDBOutputService::Record::m_closeIOV, m_closeIOV, cond::service::PoolDBOutputService::Record::m_idName, m_logheaders, cond::service::PoolDBOutputService::Record::m_tag, cond::service::PoolDBOutputService::Record::m_timetype, m_timetypestr, AlCaHLTBitMon_QueryRunRegistry::string, and cond::time::timeTypeFromName().

Referenced by PoolDBOutputService().

21  {
22  Record thisrecord;
23 
24  thisrecord.m_idName = pset.getParameter<std::string>("record");
25  thisrecord.m_tag = pset.getParameter<std::string>("tag");
26 
27  thisrecord.m_closeIOV = pset.getUntrackedParameter<bool>("closeIOV", m_closeIOV);
28 
29  thisrecord.m_timetype =
31 
32  m_callbacks.insert(std::make_pair(thisrecord.m_idName, thisrecord));
33 
34  cond::UserLogInfo userloginfo;
35  m_logheaders.insert(std::make_pair(thisrecord.m_idName, userloginfo));
36 }
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
std::map< std::string, cond::UserLogInfo > m_logheaders
TimeType timeTypeFromName(const std::string &name)
Definition: Time.cc:25
std::map< std::string, Record > m_callbacks
void PoolDBOutputService::forceInit ( )
void PoolDBOutputService::initDB ( bool  dummy = false)
private

Definition at line 94 of file PoolDBOutputService.cc.

References cond::persistency::Session::createDatabase(), cppFunctionSkipper::exception, cond::persistency::Session::existsDatabase(), CommonMethods::lock(), m_dbstarted, m_mutex, m_session, cond::persistency::TransactionScope::start(), AlCaHLTBitMon_QueryRunRegistry::string, cond::throwException(), and cond::persistency::Session::transaction().

Referenced by forceInit(), and lookUpRecord().

94  {
95  std::lock_guard<std::recursive_mutex> lock(m_mutex);
97  scope.start(false);
98  try {
101 
102  } catch (const std::exception& er) {
103  cond::throwException(std::string(er.what()), "PoolDBOutputService::initDB");
104  }
105  scope.close();
106  m_dbstarted = true;
107 }
Transaction & transaction()
Definition: Session.cc:43
void throwException(const std::string &message, const std::string &methodName)
Definition: Exception.cc:18
void start(bool readOnly=true)
Definition: Session.cc:236
cond::persistency::Session m_session
bool PoolDBOutputService::isNewTagRequest ( const std::string &  recordName)

Definition at line 89 of file PoolDBOutputService.cc.

References lookUpRecord(), and cond::service::PoolDBOutputService::Record::m_isNewTag.

Referenced by SiStripApvSimulationParametersBuilder::analyze(), DBWriter::analyze(), SiStripNoisesBuilder::analyze(), SiStripDetVOffFakeBuilder::analyze(), SiStripPedestalsBuilder::analyze(), SiStripSummaryBuilder::analyze(), SiStripThresholdBuilder::analyze(), SiStripApvGainBuilder::analyze(), WriteEcalMiscalibConstantsMC::analyze(), WriteEcalMiscalibConstants::analyze(), SiStripNoiseNormalizedWithApvGainBuilder::analyze(), SiStripApvGainBuilderFromTag::analyze(), EcalTestDevDB::analyze(), BTagCalibrationDbCreator::beginJob(), PhysicsPerformanceDBWriterTFormula_fromfile_WPandPL::beginJob(), PhysicsPerformanceDBWriterFromFile_WPandPayload::beginJob(), PhysicsPerformanceDBWriterFromFile_WPandPayload_IOV::beginJob(), JetResolutionDBWriter::beginJob(), XMLGeometryBuilder::beginJob(), JetCorrectorDBWriter::beginJob(), QGLikelihoodSystematicsDBWriter::beginJob(), QGLikelihoodDBWriter::beginJob(), SiStripFedCablingBuilder::beginRun(), HcalParametersDBBuilder::beginRun(), PTrackerParametersDBBuilder::beginRun(), GEMRecoIdealDBLoader::beginRun(), ME0RecoIdealDBLoader::beginRun(), GeometricTimingDetLoader::beginRun(), GeometricDetLoader::beginRun(), DTRecoIdealDBLoader::beginRun(), CSCRecoIdealDBLoader::beginRun(), PGeometricDetExtraBuilder::beginRun(), PGeometricDetBuilder::beginRun(), PHGCalParametersDBBuilder::beginRun(), RPCRecoIdealDBLoader::beginRun(), CocoaDBMgr::DumpCocoaResults(), BeamSpotWrite2DB::endJob(), CentralityTableProducer::endJob(), StoreESCondition::endJob(), StoreEcalCondition::endJob(), SiStripFedCablingManipulator::endRun(), AlcaBeamSpotHarvester::endRun(), HLTPrescaleRecorder::endRun(), SiStripBadChannelBuilder::getNewObject(), ConditionDBWriter< SiStripApvGain >::storeOnDb(), l1t::DataWriterExt::updateIOV(), l1t::DataWriter::updateIOV(), CaloGeometryDBWriter::write(), BeamFitter::write2DB(), AlCaRecoTriggerBitsRcdUpdate::writeBitsToDB(), CaloGeometryDBWriter::writeIndexed(), and DTCalibDBUtils::writeToDB().

89  {
90  Record& myrecord = this->lookUpRecord(recordName);
91  return myrecord.m_isNewTag;
92 }
Record & lookUpRecord(const std::string &recordName)
cond::service::PoolDBOutputService::Record & PoolDBOutputService::lookUpRecord ( const std::string &  recordName)
private

Definition at line 249 of file PoolDBOutputService.cc.

References cond::persistency::Session::existsIov(), initDB(), CommonMethods::lock(), m_callbacks, m_dbstarted, m_mutex, m_session, cond::throwException(), and cond::persistency::Session::transaction().

Referenced by appendSinceTime(), closeIOV(), createNewIOV(), isNewTagRequest(), tag(), and tagInfo().

250  {
251  std::lock_guard<std::recursive_mutex> lock(m_mutex);
252  if (!m_dbstarted)
253  this->initDB();
255  std::map<std::string, Record>::iterator it = m_callbacks.find(recordName);
256  if (it == m_callbacks.end()) {
257  cond::throwException("The record \"" + recordName + "\" has not been registered.",
258  "PoolDBOutputService::lookUpRecord");
259  }
260  if (!m_session.existsIov(it->second.m_tag)) {
261  it->second.m_isNewTag = true;
262  } else {
263  it->second.m_isNewTag = false;
264  }
265  scope.close();
266  return it->second;
267 }
Transaction & transaction()
Definition: Session.cc:43
void throwException(const std::string &message, const std::string &methodName)
Definition: Exception.cc:18
cond::persistency::Session m_session
bool existsIov(const std::string &tag)
Definition: Session.cc:68
std::map< std::string, Record > m_callbacks
cond::UserLogInfo & PoolDBOutputService::lookUpUserLogInfo ( const std::string &  recordName)
private

Definition at line 269 of file PoolDBOutputService.cc.

References m_logheaders.

Referenced by appendSinceTime(), createNewIOV(), and setLogHeaderForRecord().

269  {
270  std::map<std::string, cond::UserLogInfo>::iterator it = m_logheaders.find(recordName);
271  if (it == m_logheaders.end())
272  throw cond::Exception("Log db was not set for record " + recordName +
273  " from PoolDBOutputService::lookUpUserLogInfo");
274  return it->second;
275 }
Base exception class for the object to relational access.
Definition: Exception.h:11
std::map< std::string, cond::UserLogInfo > m_logheaders
void PoolDBOutputService::postEndJob ( )
void PoolDBOutputService::postModuleEvent ( edm::StreamContext const &  iContext,
edm::ModuleCallingContext const &   
)
private

Definition at line 125 of file PoolDBOutputService.cc.

References s_streamIndex.

Referenced by PoolDBOutputService().

126  {
127  s_streamIndex = -1;
128 }
static thread_local int s_streamIndex
void PoolDBOutputService::preEventProcessing ( edm::StreamContext const &  iContext)
private

Definition at line 116 of file PoolDBOutputService.cc.

References m_currentTimes, edm::StreamContext::streamID(), edm::StreamContext::timestamp(), edm::StreamID::value(), and edm::Timestamp::value().

Referenced by PoolDBOutputService().

116  {
117  m_currentTimes[iContext.streamID().value()] = iContext.timestamp().value();
118 }
std::vector< cond::Time_t > m_currentTimes
void PoolDBOutputService::preGlobalBeginLumi ( edm::GlobalContext const &  iContext)
private

Definition at line 136 of file PoolDBOutputService.cc.

References edm::GlobalContext::luminosityBlockID(), m_currentTimes, ntuplemaker::time, and edm::LuminosityBlockID::value().

Referenced by PoolDBOutputService().

136  {
137  for (auto& time : m_currentTimes) {
138  time = iContext.luminosityBlockID().value();
139  }
140 }
std::vector< cond::Time_t > m_currentTimes
void PoolDBOutputService::preGlobalBeginRun ( edm::GlobalContext const &  iContext)
private

Definition at line 130 of file PoolDBOutputService.cc.

References edm::GlobalContext::luminosityBlockID(), m_currentTimes, edm::LuminosityBlockID::run(), and ntuplemaker::time.

Referenced by PoolDBOutputService().

130  {
131  for (auto& time : m_currentTimes) {
132  time = iContext.luminosityBlockID().run();
133  }
134 }
std::vector< cond::Time_t > m_currentTimes
void PoolDBOutputService::preModuleEvent ( edm::StreamContext const &  iContext,
edm::ModuleCallingContext const &   
)
private

Definition at line 120 of file PoolDBOutputService.cc.

References s_streamIndex, edm::StreamContext::streamID(), and edm::StreamID::value().

Referenced by PoolDBOutputService().

121  {
122  s_streamIndex = iContext.streamID().value();
123 }
static thread_local int s_streamIndex
cond::persistency::Session PoolDBOutputService::session ( ) const
void PoolDBOutputService::setLogHeaderForRecord ( const std::string &  recordName,
const std::string &  provenance,
const std::string &  usertext 
)

Definition at line 293 of file PoolDBOutputService.cc.

References lookUpUserLogInfo(), cond::UserLogInfo::provenance, and cond::UserLogInfo::usertext.

Referenced by popcon::PopCon::write().

295  {
296  cond::UserLogInfo& myloginfo = this->lookUpUserLogInfo(recordName);
297  myloginfo.provenance = dataprovenance;
298  myloginfo.usertext = usertext;
299 }
std::string provenance
Definition: Types.h:23
std::string usertext
Definition: Types.h:24
cond::UserLogInfo & lookUpUserLogInfo(const std::string &recordName)
std::string PoolDBOutputService::tag ( const std::string &  recordName)
void PoolDBOutputService::tagInfo ( const std::string &  recordName,
cond::TagInfo_t result 
)

Definition at line 302 of file PoolDBOutputService.cc.

References cond::persistency::IOVProxy::getLast(), dqmdumpme::last, cond::TagInfo_t::lastInterval, cond::TagInfo_t::lastPayloadToken, CommonMethods::lock(), lookUpRecord(), m_mutex, m_session, cond::service::PoolDBOutputService::Record::m_tag, cond::TagInfo_t::name, cond::Iov_t::payloadId, cond::persistency::Session::readIov(), record, cond::persistency::IOVProxy::sequenceSize(), cond::Iov_t::since, cond::TagInfo_t::size, and cond::Iov_t::till.

Referenced by l1t::DataWriter::lastPayloadToken(), l1t::DataWriterExt::lastPayloadToken(), l1t::DataWriterExt::updateIOV(), and l1t::DataWriter::updateIOV().

302  {
303  //
304  std::lock_guard<std::recursive_mutex> lock(m_mutex);
306  result.name = record.m_tag;
307  //use iovproxy to find out.
308  cond::persistency::IOVProxy iov = m_session.readIov(record.m_tag);
309  result.size = iov.sequenceSize();
310  if (result.size > 0) {
311  cond::Iov_t last = iov.getLast();
312  result.lastInterval = cond::ValidityInterval(last.since, last.till);
313  result.lastPayloadToken = last.payloadId;
314  }
315 }
JetCorrectorParameters::Record record
Definition: classes.h:7
Time_t since
Definition: Types.h:53
size_t size
Definition: Types.h:76
std::pair< Time_t, Time_t > ValidityInterval
Definition: Time.h:17
std::string name
Definition: Types.h:72
cond::ValidityInterval lastInterval
Definition: Types.h:74
IOVProxy readIov(const std::string &tag, bool full=false)
Definition: Session.cc:54
Record & lookUpRecord(const std::string &recordName)
Hash payloadId
Definition: Types.h:55
cond::persistency::Session m_session
std::string lastPayloadToken
Definition: Types.h:75
Time_t till
Definition: Types.h:54
template<typename T >
void cond::service::PoolDBOutputService::writeOne ( T payload,
Time_t  time,
const std::string &  recordName,
bool  withlogging = false 
)
inline

Definition at line 53 of file PoolDBOutputService.h.

References CommonMethods::lock(), HLT_2018_cff::payloadType, AlCaHLTBitMon_QueryRunRegistry::string, and cond::persistency::throwException().

Referenced by EcalDQMStatusWriter::analyze(), L1MuonOverlapParamsDBProducer::analyze(), SurveyInputTrackerFromDB::analyze(), GBRForestWriter::analyze(), PPSTimingCalibrationWriter::analyze(), BufferedBoostIODBWriter::analyze(), TrackerSystematicMisalignments::analyze(), CTPPSRPAlignmentInfoAnalyzer::analyze(), WriteCTPPSPixelAnalysisMask::analyze(), WriteCTPPSPixelDAQMapping::analyze(), WriteCTPPSBeamParameters::analyze(), AlignPCLThresholdsWriter::analyze(), BoostIODBWriter< DataType >::analyze(), FFTJetCorrectorDBWriter::analyze(), SiStripApvGainRescaler::analyze(), SiStripChannelGainFromDBMiscalibrator::analyze(), SiStripNoisesFromDBMiscalibrator::analyze(), TrackerGeometryCompare::analyze(), MCMisalignmentScaler::analyze(), JetResolutionDBWriter::beginJob(), DTCCablingMapTestProducer::beginJob(), DTUserKeyedConfigHandler::chkConfigList(), DTKeyedConfigHandler::chkConfigList(), SiPixelStatusHarvester::constructTag(), EcalDBCopy::copyToDB(), ECALpedestalPCLHarvester::dqmEndJob(), SiStripGainsPCLHarvester::dqmEndJob(), SiPixelStatusHarvester::dqmEndRun(), CorrPCCProducer::dqmEndRunProduce(), SurveyDBUploader::endJob(), Mixing2DB::endJob(), DTKeyedConfigDBInit::endJob(), DTCCablingMapProducer::endJob(), SiStripLorentzAngleCalibration::endOfJob(), SiPixelLorentzAngleCalibration::endOfJob(), SiStripBackplaneCalibration::endOfJob(), DummyCondDBWriter< TObject, TObjectO, TRecord >::endRun(), AlcaBeamSpotHarvester::endRun(), cond::BTransitionAnalyzer< EcalADCToGeVConstant, EcalADCToGeVConstantRcd >::endRun(), LaserAlignment::endRunProduce(), WriteCTPPSPixGainCalibrations::fillDB(), MisalignedTrackerESProducer::produce(), MuonAlignment::saveCSCSurveyToDB(), MuonAlignment::saveCSCtoDB(), MuonAlignment::saveDTSurveyToDB(), MuonAlignment::saveDTtoDB(), TrackerAlignment::saveToDB(), MisalignedMuonESProducer::saveToDB(), ConditionDBWriter< SiStripApvGain >::storeOnDb(), WriteESAlignments::write(), AlignmentProducerBase::writeDB(), GlobalTrackerMuonAlignment::writeGlPosRcd(), popcon::PopCon::writeOne(), DTCalibDBUtils::writeToDB(), and CreateIdealTkAlRecords::writeToDB().

53  {
54  if (!payload)
55  throwException("Provided payload pointer is invalid.", "PoolDBOutputService::writeOne");
56  std::lock_guard<std::recursive_mutex> lock(m_mutex);
57  if (!m_dbstarted)
58  this->initDB();
59  Hash payloadId = m_session.storePayload(*payload);
60  std::string payloadType = cond::demangledName(typeid(T));
62  createNewIOV(payloadId, payloadType, time, endOfTime(), recordName, withlogging);
63  } else {
64  appendSinceTime(payloadId, time, recordName, withlogging);
65  }
66  }
void throwException(const std::string &message, const std::string &methodName)
Definition: Exception.cc:18
void appendSinceTime(T *payloadObj, cond::Time_t sinceTime, const std::string &recordName, bool withlogging=false)
bool isNewTagRequest(const std::string &recordName)
std::string Hash
Definition: Types.h:43
cond::persistency::Session m_session
void createNewIOV(T *firstPayloadObj, cond::Time_t firstSinceTime, cond::Time_t firstTillTime, const std::string &recordName, bool withlogging=false)
cond::Hash storePayload(const T &payload, const boost::posix_time::ptime &creationTime=boost::posix_time::microsec_clock::universal_time())
Definition: Session.h:197
long double T

Member Data Documentation

std::map<std::string, Record> cond::service::PoolDBOutputService::m_callbacks
private

Definition at line 195 of file PoolDBOutputService.h.

Referenced by fillRecord(), lookUpRecord(), and PoolDBOutputService().

bool cond::service::PoolDBOutputService::m_closeIOV
private

Definition at line 197 of file PoolDBOutputService.h.

Referenced by fillRecord(), and PoolDBOutputService().

std::vector<cond::Time_t> cond::service::PoolDBOutputService::m_currentTimes
private
bool cond::service::PoolDBOutputService::m_dbstarted
private
std::map<std::string, cond::UserLogInfo> cond::service::PoolDBOutputService::m_logheaders
private

Definition at line 198 of file PoolDBOutputService.h.

Referenced by fillRecord(), lookUpUserLogInfo(), and PoolDBOutputService().

std::recursive_mutex cond::service::PoolDBOutputService::m_mutex
private
std::vector<std::pair<std::string, std::string> > cond::service::PoolDBOutputService::m_newtags
private

Definition at line 196 of file PoolDBOutputService.h.

cond::persistency::Session cond::service::PoolDBOutputService::m_session
private
cond::TimeType cond::service::PoolDBOutputService::m_timetype
private

Definition at line 188 of file PoolDBOutputService.h.

Referenced by beginOfTime(), endOfTime(), and PoolDBOutputService().

std::string cond::service::PoolDBOutputService::m_timetypestr
private

Definition at line 189 of file PoolDBOutputService.h.

Referenced by fillRecord(), and PoolDBOutputService().