![]() |
![]() |
#include <ESSourceDataProxyBase.h>
Public Member Functions | |
ESSourceDataProxyBase (edm::SerialTaskQueue *iQueue, std::mutex *iMutex) | |
std::mutex * | mutex () const |
edm::SerialTaskQueue * | queue () const |
![]() | |
bool | cacheIsValid () const |
DataProxy () | |
DataProxy (DataProxy const &)=delete | |
void const * | get (EventSetupRecordImpl const &, DataKey const &, bool iTransiently, ActivityRegistry const *, EventSetupImpl const *) const |
void const * | getAfterPrefetch (const EventSetupRecordImpl &iRecord, const DataKey &iKey, bool iTransiently) const |
virtual void | initializeForNewIOV () |
void | invalidate () |
DataProxy const & | operator= (DataProxy const &)=delete |
void | prefetchAsync (WaitingTask *, EventSetupRecordImpl const &, DataKey const &, EventSetupImpl const *, ServiceToken const &) const |
ComponentDescription const * | providerDescription () const |
returns the description of the DataProxyProvider which owns this Proxy More... | |
void | resetIfTransient () |
void | setProviderDescription (ComponentDescription const *iDesc) |
virtual | ~DataProxy () |
Protected Member Functions | |
void | invalidateCache () override |
void | invalidateTransientCache () override |
virtual void | prefetch (edm::eventsetup::DataKey const &iKey, EventSetupRecordDetails)=0 |
![]() | |
void | clearCacheIsValid () |
virtual void const * | getAfterPrefetchImpl () const =0 |
Private Member Functions | |
void | prefetchAsyncImpl (edm::WaitingTask *iTask, edm::eventsetup::EventSetupRecordImpl const &, edm::eventsetup::DataKey const &iKey, edm::EventSetupImpl const *, edm::ServiceToken const &) final |
Private Attributes | |
std::mutex * | m_mutex |
std::atomic< bool > | m_prefetching |
edm::SerialTaskQueue * | m_queue |
edm::WaitingTaskList | m_waitingList |
Definition at line 39 of file ESSourceDataProxyBase.h.
|
inline |
Definition at line 41 of file ESSourceDataProxyBase.h.
|
inlineoverrideprotectedvirtual |
indicates that the Proxy should invalidate any cached information as that information has 'expired' (i.e. we have moved to a new IOV)
Implements edm::eventsetup::DataProxy.
Definition at line 48 of file ESSourceDataProxyBase.h.
References m_prefetching, m_waitingList, and edm::WaitingTaskList::reset().
|
inlineoverrideprotectedvirtual |
indicates that the Proxy should invalidate any cached information as that information was accessed transiently and therefore is not intended to be kept over the entire IOV. Default is to call invalidateCache().
Reimplemented from edm::eventsetup::DataProxy.
Definition at line 52 of file ESSourceDataProxyBase.h.
|
inline |
|
protectedpure virtual |
Implemented in DataProxy< RecordT, DataT, Initializer >.
Referenced by prefetchAsyncImpl().
|
finalprivatevirtual |
This is the function which does the real work of getting the data if it is not already cached. The returning 'void const*' must point to an instance of the class type corresponding to the type designated in iKey. So if iKey refers to a base class interface the pointer must be a pointer to that base class interface and not a pointer to an inheriting class instance.
Implements edm::eventsetup::DataProxy.
Definition at line 23 of file ESSourceDataProxyBase.cc.
References edm::WaitingTaskList::add(), edm::WaitingTaskList::doneWaiting(), m_mutex, m_prefetching, m_queue, m_waitingList, prefetch(), and edm::SerialTaskQueue::push().
|
inline |
|
private |
Definition at line 67 of file ESSourceDataProxyBase.h.
Referenced by mutex(), and prefetchAsyncImpl().
|
private |
Definition at line 68 of file ESSourceDataProxyBase.h.
Referenced by invalidateCache(), and prefetchAsyncImpl().
|
private |
Definition at line 66 of file ESSourceDataProxyBase.h.
Referenced by prefetchAsyncImpl(), and queue().
|
private |
Definition at line 65 of file ESSourceDataProxyBase.h.
Referenced by invalidateCache(), and prefetchAsyncImpl().