1 #ifndef CondCore_ESSources_ProductResolver_H 2 #define CondCore_ESSources_ProductResolver_H 21 template <
typename DataT>
26 template <
class RecordT,
class DataT,
typename Initializer = cond::DefaultInitializer<DataT>>
47 DataT
const*
fetch()
const final {
return &(*m_data)(); }
54 std::shared_ptr<cond::persistency::PayloadProxy<DataT>>
m_data;
63 typedef std::shared_ptr<cond::persistency::BasePayloadProxy>
ProxyP;
64 typedef std::shared_ptr<edm::eventsetup::ESProductResolver>
esResolverP;
67 typedef std::pair<std::string, std::string>
Args;
70 virtual ProxyP proxy(
unsigned int iovIndex)
const = 0;
122 template <
class RecordT,
class DataT,
typename Initializer = cond::DefaultInitializer<DataT>>
131 m_type = edm::eventsetup::DataKey::makeTypeTag<DataT>();
156 if (
m_proxies.size() != nConcurrentIOVs) {
160 for (
unsigned int i = 1;
i < nConcurrentIOVs; ++
i) {
180 std::vector<std::shared_ptr<cond::persistency::PayloadProxy<DataT>>>
m_proxies;
persistency::Session const & session() const
std::shared_ptr< std::vector< Iov_t > > m_requests
const ProductResolver & operator=(const ProductResolver &)=delete
void initializeForNewIOV() override
std::pair< std::string, std::string > Args
virtual void initConcurrentIOVs(unsigned int nConcurrentIOVs)=0
virtual edm::eventsetup::TypeTag type() const =0
persistency::Session m_session
ProductResolverWrapperBase()
void loadTag(std::string const &tag)
persistency::IOVProxy const & iovProxy() const
std::string const & label() const
edm::eventsetup::TypeTag m_type
void setSession(persistency::Session const &v)
std::string const & connString() const
DataT const * fetch() const final
TimeType timeType() const
virtual esResolverP esResolver(unsigned int iovIndex) const =0
virtual void lateInit(persistency::Session &session, const std::string &tag, const boost::posix_time::ptime &snapshotTime, std::string const &il, std::string const &cs, edm::SerialTaskQueue *queue, std::mutex *mutex)=0
unsigned long long Time_t
void initConcurrentIOVs(unsigned int nConcurrentIOVs) override
persistency::IOVProxy & iovProxy()
void lateInit(cond::persistency::Session &iSession, const std::string &tag, const boost::posix_time::ptime &snapshotTime, std::string const &il, std::string const &cs, edm::SerialTaskQueue *queue, std::mutex *mutex) override
void prefetch(edm::eventsetup::DataKey const &iKey, edm::EventSetupRecordDetails) final
cond::Tag_t tagInfo() const
std::shared_ptr< cond::persistency::PayloadProxy< DataT > > m_data
virtual ~ProductResolverWrapperBase()
std::shared_ptr< std::vector< Iov_t > > const & requests() const
esResolverP esResolver(unsigned int iovIndex) const override
Initializer m_initializer
ProxyP proxy(unsigned int iovIndex) const override
Iov_t const & currentIov() const
void addInfo(std::string const &il, std::string const &cs, std::string const &tag)
edm::eventsetup::TypeTag type() const override
std::shared_ptr< cond::persistency::BasePayloadProxy > ProxyP
ProductResolverWrapper(const char *source=nullptr)
std::string const & tag() const
virtual ProxyP proxy(unsigned int iovIndex) const =0
std::vector< std::shared_ptr< ProductResolver > > m_esResolvers
std::shared_ptr< edm::eventsetup::ESProductResolver > esResolverP
persistency::IOVProxy m_iovProxy
std::vector< std::shared_ptr< cond::persistency::PayloadProxy< DataT > > > m_proxies
persistency::Session & session()
::cond::ProductResolver< RecordT, DataT, Initializer > ProductResolver
ProductResolver(std::shared_ptr< cond::persistency::PayloadProxy< DataT >> pdata, edm::SerialTaskQueue *iQueue, std::mutex *iMutex)
ValidityInterval setIntervalFor(Time_t target)
static std::string const source