CMS 3D CMS Logo

List of all members | Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes
cond::ProductResolver< RecordT, DataT, Initializer > Class Template Reference

#include <ProductResolver.h>

Inheritance diagram for cond::ProductResolver< RecordT, DataT, Initializer >:
edm::eventsetup::ESSourceProductResolverTemplate< DataT > edm::eventsetup::ESSourceProductResolverNonConcurrentBase edm::eventsetup::ESSourceProductResolverBase edm::eventsetup::ESProductResolver

Public Member Functions

const ProductResolveroperator= (const ProductResolver &)=delete
 
 ProductResolver (std::shared_ptr< cond::persistency::PayloadProxy< DataT >> pdata, edm::SerialTaskQueue *iQueue, std::mutex *iMutex)
 
- Public Member Functions inherited from edm::eventsetup::ESSourceProductResolverTemplate< DataT >
 ESSourceProductResolverTemplate (edm::SerialTaskQueue *iQueue, std::mutex *iMutex)
 
 ESSourceProductResolverTemplate (const ESSourceProductResolverTemplate &)=delete
 
const ESSourceProductResolverTemplateoperator= (const ESSourceProductResolverTemplate &)=delete
 
- Public Member Functions inherited from edm::eventsetup::ESSourceProductResolverNonConcurrentBase
 ESSourceProductResolverNonConcurrentBase (edm::SerialTaskQueue *iQueue, std::mutex *iMutex)
 
std::mutex * mutex () const
 
edm::SerialTaskQueuequeue () const
 
- Public Member Functions inherited from edm::eventsetup::ESSourceProductResolverBase
 ESSourceProductResolverBase ()
 
- Public Member Functions inherited from edm::eventsetup::ESProductResolver
bool cacheIsValid () const
 
 ESProductResolver ()
 
 ESProductResolver (ESProductResolver const &)=delete
 
void const * getAfterPrefetch (const EventSetupRecordImpl &iRecord, const DataKey &iKey, bool iTransiently) const
 
void invalidate ()
 
ESProductResolver const & operator= (ESProductResolver const &)=delete
 
void prefetchAsync (WaitingTaskHolder, EventSetupRecordImpl const &, DataKey const &, EventSetupImpl const *, ServiceToken const &, ESParentContext const &) const
 
ComponentDescription const * providerDescription () const
 returns the description of the ESProductResolverProvider which owns this Resolver More...
 
void resetIfTransient ()
 
void setProviderDescription (ComponentDescription const *iDesc)
 
virtual ~ESProductResolver ()
 

Protected Member Functions

DataT const * fetch () const final
 
void prefetch (edm::eventsetup::DataKey const &iKey, edm::EventSetupRecordDetails) final
 
- Protected Member Functions inherited from edm::eventsetup::ESSourceProductResolverBase
void invalidateCache () override
 
void invalidateTransientCache () override
 
template<typename ASYNC , typename GUARD >
void prefetchAsyncImplTemplate (ASYNC iAsync, GUARD iGuardFactory, edm::WaitingTaskHolder iTask, edm::eventsetup::EventSetupRecordImpl const &iRecord, edm::eventsetup::DataKey const &iKey, edm::ESParentContext const &iContext)
 
- Protected Member Functions inherited from edm::eventsetup::ESProductResolver
void clearCacheIsValid ()
 

Private Member Functions

void initializeForNewIOV () override
 

Private Attributes

std::shared_ptr< cond::persistency::PayloadProxy< DataT > > m_data
 
Initializer m_initializer
 

Detailed Description

template<class RecordT, class DataT, typename Initializer = cond::DefaultInitializer<DataT>>
class cond::ProductResolver< RecordT, DataT, Initializer >

Definition at line 27 of file ProductResolver.h.

Constructor & Destructor Documentation

◆ ProductResolver()

template<class RecordT , class DataT , typename Initializer = cond::DefaultInitializer<DataT>>
cond::ProductResolver< RecordT, DataT, Initializer >::ProductResolver ( std::shared_ptr< cond::persistency::PayloadProxy< DataT >>  pdata,
edm::SerialTaskQueue iQueue,
std::mutex iMutex 
)
inlineexplicit

Definition at line 29 of file ProductResolver.h.

Member Function Documentation

◆ fetch()

template<class RecordT , class DataT , typename Initializer = cond::DefaultInitializer<DataT>>
DataT const* cond::ProductResolver< RecordT, DataT, Initializer >::fetch ( ) const
inlinefinalprotectedvirtual

Inheriting classes must also override void prefetch(edm::eventsetup::DataKey const& iKey, EventSetupRecordDetails) override;returns the data obtained in the call to prefetch

Implements edm::eventsetup::ESSourceProductResolverTemplate< DataT >.

Definition at line 47 of file ProductResolver.h.

47 { return &(*m_data)(); }

◆ initializeForNewIOV()

template<class RecordT , class DataT , typename Initializer = cond::DefaultInitializer<DataT>>
void cond::ProductResolver< RecordT, DataT, Initializer >::initializeForNewIOV ( )
inlineoverrideprivatevirtual

Reimplemented from edm::eventsetup::ESProductResolver.

Definition at line 50 of file ProductResolver.h.

References cond::ProductResolver< RecordT, DataT, Initializer >::m_data.

50 { m_data->initializeForNewIOV(); }
std::shared_ptr< cond::persistency::PayloadProxy< DataT > > m_data

◆ operator=()

template<class RecordT , class DataT , typename Initializer = cond::DefaultInitializer<DataT>>
const ProductResolver& cond::ProductResolver< RecordT, DataT, Initializer >::operator= ( const ProductResolver< RecordT, DataT, Initializer > &  )
delete

◆ prefetch()

template<class RecordT , class DataT , typename Initializer = cond::DefaultInitializer<DataT>>
void cond::ProductResolver< RecordT, DataT, Initializer >::prefetch ( edm::eventsetup::DataKey const &  iKey,
edm::EventSetupRecordDetails   
)
inlinefinalprotectedvirtual

Implements edm::eventsetup::ESSourceProductResolverBase.

Definition at line 42 of file ProductResolver.h.

References cond::ProductResolver< RecordT, DataT, Initializer >::m_data, and cond::ProductResolver< RecordT, DataT, Initializer >::m_initializer.

42  {
43  m_data->make();
44  m_initializer(const_cast<DataT&>((*m_data)()));
45  }
std::shared_ptr< cond::persistency::PayloadProxy< DataT > > m_data

Member Data Documentation

◆ m_data

template<class RecordT , class DataT , typename Initializer = cond::DefaultInitializer<DataT>>
std::shared_ptr<cond::persistency::PayloadProxy<DataT> > cond::ProductResolver< RecordT, DataT, Initializer >::m_data
private

◆ m_initializer

template<class RecordT , class DataT , typename Initializer = cond::DefaultInitializer<DataT>>
Initializer cond::ProductResolver< RecordT, DataT, Initializer >::m_initializer
private