File indexing completed on 2025-04-02 23:19:23
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016 #include "CondCore/ESSources/interface/ProductResolverFactory.h"
0017 #include "CondCore/ESSources/interface/ProductResolver.h"
0018 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0019
0020 cond::ProductResolverWrapperBase::ProductResolverWrapperBase() {}
0021
0022 cond::ProductResolverWrapperBase::~ProductResolverWrapperBase() {}
0023
0024 void cond::ProductResolverWrapperBase::addInfo(std::string const& il, std::string const& cs, std::string const& tag) {
0025 m_label = il;
0026 m_connString = cs;
0027 m_tag = tag;
0028 }
0029
0030 void cond::ProductResolverWrapperBase::loadTag(std::string const& tag) {
0031 m_session.transaction().start(true);
0032 m_iovProxy = m_session.readIov(tag);
0033 m_iovProxy.setPrintDebug(m_printDebug);
0034 m_session.transaction().commit();
0035 m_currentIov.clear();
0036 m_requests = std::make_shared<std::vector<cond::Iov_t>>();
0037 if (m_printDebug) {
0038 edm::LogSystem("ProductResolverWrapperBase") << "loadTag executed with tag: " << tag;
0039 }
0040 }
0041
0042 void cond::ProductResolverWrapperBase::loadTag(std::string const& tag, boost::posix_time::ptime const& snapshotTime) {
0043 m_session.transaction().start(true);
0044 m_iovProxy = m_session.readIov(tag, snapshotTime);
0045 m_iovProxy.setPrintDebug(m_printDebug);
0046 m_session.transaction().commit();
0047 m_currentIov.clear();
0048 m_requests = std::make_shared<std::vector<cond::Iov_t>>();
0049 if (m_printDebug) {
0050 edm::LogSystem("ProductResolverWrapperBase")
0051 << "loadTag executed with tag: " << tag << " and snapshotTime: " << snapshotTime;
0052 }
0053 }
0054
0055 void cond::ProductResolverWrapperBase::reload() {
0056 std::string tag = m_iovProxy.tagInfo().name;
0057 if (!tag.empty())
0058 loadTag(tag);
0059 }
0060
0061 cond::ValidityInterval cond::ProductResolverWrapperBase::setIntervalFor(Time_t time) {
0062 if (!m_currentIov.isValidFor(time)) {
0063 m_currentIov.clear();
0064 m_session.transaction().start(true);
0065 m_currentIov = m_iovProxy.getInterval(time);
0066 m_session.transaction().commit();
0067 }
0068 if (m_printDebug) {
0069 edm::LogSystem("ProductResolverWrapperBase")
0070 << "setIntervalFor for tag:" << m_iovProxy.tagInfo().name << " executed with time: " << time << "\n"
0071 << " set ValidityInterval: since: " << m_currentIov.since << " till: " << m_currentIov.till;
0072 }
0073 return cond::ValidityInterval(m_currentIov.since, m_currentIov.till);
0074 }
0075
0076 EDM_REGISTER_PLUGINFACTORY(cond::ProductResolverFactory, cond::pluginCategory());
0077
0078 namespace cond {
0079 const char* pluginCategory() { return "CondProductResolverFactory"; }
0080 }