#include "HDF5ProductResolver.h"
Private Member Functions | |
std::vector< char > | decompress_lzma (std::vector< char >, std::size_t iMemSize) const |
std::vector< char > | decompress_zlib (std::vector< char >, std::size_t iMemSize) const |
void const * | getAfterPrefetchImpl () const final |
std::ptrdiff_t | indexForInterval (edm::ValidityInterval const &iIOV) const |
void | invalidateCache () final |
void | prefetch (edm::eventsetup::DataKey const &iKey, edm::EventSetupRecordDetails) final |
void | prefetchAsyncImpl (edm::WaitingTaskHolder iTask, edm::eventsetup::EventSetupRecordImpl const &iES, edm::eventsetup::DataKey const &iKey, edm::EventSetupImpl const *, edm::ServiceToken const &, edm::ESParentContext const &) final |
void | readFromHDF5api (std::ptrdiff_t iIndex) |
void | threadFriendlyPrefetch (uint64_t iFileOffset, std::size_t iStorageSize, std::size_t iMemSize, const std::string &iType) |
Private Attributes | |
cond::hdf5::Compression | compression_ |
cond::serialization::unique_void_ptr | data_ |
cond::hdf5::DataProduct const * | dataProduct_ |
std::exception_ptr | exceptPtr_ |
cms::h5::File const * | file_ |
std::string | fileName_ |
uint64_t | fileOffset_ |
std::unique_ptr< cond::serialization::SerializationHelperBase > | helper_ |
std::size_t | memSize_ |
edm::SerialTaskQueue * | queue_ |
cond::hdf5::Record const * | record_ |
std::size_t | storageSize_ |
std::string | type_ |
Additional Inherited Members | |
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 () |
Description: [one line class summary]
Usage: <usage>
Definition at line 36 of file HDF5ProductResolver.h.
HDF5ProductResolver::HDF5ProductResolver | ( | edm::SerialTaskQueue * | iQueue, |
std::unique_ptr< cond::serialization::SerializationHelperBase > | iHelper, | ||
cms::h5::File const * | iFile, | ||
std::string const & | iFileName, | ||
cond::hdf5::Compression | iCompression, | ||
cond::hdf5::Record const * | iRecord, | ||
cond::hdf5::DataProduct const * | iDataProduct | ||
) |
Definition at line 44 of file HDF5ProductResolver.cc.
|
override |
Definition at line 65 of file HDF5ProductResolver.cc.
|
delete |
|
private |
Definition at line 178 of file HDF5ProductResolver.cc.
References edmScanValgrind::buffer, Exception, eostools::move(), cms::cuda::stream, and mitigatedMETSequence_cff::U.
Referenced by threadFriendlyPrefetch().
|
private |
Definition at line 145 of file HDF5ProductResolver.cc.
References cms::cuda::assert(), edmScanValgrind::buffer, eostools::move(), runTheMatrix::ret, and funct::void.
Referenced by threadFriendlyPrefetch().
|
finalprivatevirtual |
used to retrieve the data from the implementation. The data is then cached locally.
Implements edm::eventsetup::ESProductResolver.
Definition at line 247 of file HDF5ProductResolver.cc.
References data_, and cond::serialization::unique_void_ptr::get().
|
private |
Definition at line 112 of file HDF5ProductResolver.cc.
References cms::cuda::assert(), cond::hdf5::convertSyncValue(), cond::hdf5::findMatchingFirst(), edm::ValidityInterval::first(), cond::hdf5::Record::iovFirsts_, cond::hdf5::Record::iovIsRunLumi_, and record_.
Referenced by prefetchAsyncImpl().
|
finalprivatevirtual |
indicates that the Resolver should invalidate any cached information as that information has 'expired' (i.e. we have moved to a new IOV)
Implements edm::eventsetup::ESProductResolver.
Definition at line 239 of file HDF5ProductResolver.cc.
References data_.
|
delete |
|
finalprivatevirtual |
Implements edm::eventsetup::ESSourceProductResolverBase.
Definition at line 135 of file HDF5ProductResolver.cc.
References exceptPtr_, fileOffset_, memSize_, storageSize_, threadFriendlyPrefetch(), and type_.
|
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::ESProductResolver.
Definition at line 71 of file HDF5ProductResolver.cc.
References edm::eventsetup::EventSetupRecordImpl::activityRegistry(), CMS_SA_ALLOW, visDQMUpload::context, edm::signalslot::Signal< T >::emit(), exceptPtr_, indexForInterval(), edm::eventsetup::EventSetupRecordImpl::key(), edm::ESModuleCallingContext::kRunning, eostools::move(), edm::ActivityRegistry::preESModuleSignal_, edm::eventsetup::ESSourceProductResolverBase::prefetchAsyncImplTemplate(), edm::eventsetup::ESProductResolver::providerDescription(), edm::SerialTaskQueue::push(), queue_, readFromHDF5api(), record_, and edm::eventsetup::EventSetupRecordImpl::validityInterval().
|
private |
Definition at line 122 of file HDF5ProductResolver.cc.
References dataProduct_, cms::h5::File::derefDataSet(), file_, fileOffset_, memSize_, cond::hdf5::DataProduct::payloadForIOVs_, storageSize_, and type_.
Referenced by prefetchAsyncImpl().
|
private |
Definition at line 209 of file HDF5ProductResolver.cc.
References edmScanValgrind::buffer, compression_, data_, decompress_lzma(), decompress_zlib(), Exception, geometryDiff::file, fileName_, cond::serialization::unique_void_ptr::get(), helper_, cond::hdf5::kLZMA, cond::hdf5::kZLIB, and eostools::move().
Referenced by prefetch().
|
private |
Definition at line 80 of file HDF5ProductResolver.h.
Referenced by threadFriendlyPrefetch().
|
private |
Definition at line 74 of file HDF5ProductResolver.h.
Referenced by getAfterPrefetchImpl(), invalidateCache(), and threadFriendlyPrefetch().
|
private |
Definition at line 79 of file HDF5ProductResolver.h.
Referenced by readFromHDF5api().
|
private |
Definition at line 87 of file HDF5ProductResolver.h.
Referenced by prefetch(), and prefetchAsyncImpl().
|
private |
Definition at line 76 of file HDF5ProductResolver.h.
Referenced by readFromHDF5api().
|
private |
Definition at line 77 of file HDF5ProductResolver.h.
Referenced by threadFriendlyPrefetch().
|
private |
Definition at line 83 of file HDF5ProductResolver.h.
Referenced by prefetch(), and readFromHDF5api().
|
private |
Definition at line 75 of file HDF5ProductResolver.h.
Referenced by threadFriendlyPrefetch().
|
private |
Definition at line 86 of file HDF5ProductResolver.h.
Referenced by prefetch(), and readFromHDF5api().
|
private |
Definition at line 73 of file HDF5ProductResolver.h.
Referenced by prefetchAsyncImpl().
|
private |
Definition at line 78 of file HDF5ProductResolver.h.
Referenced by indexForInterval(), and prefetchAsyncImpl().
|
private |
Definition at line 85 of file HDF5ProductResolver.h.
Referenced by prefetch(), and readFromHDF5api().
|
private |
Definition at line 84 of file HDF5ProductResolver.h.
Referenced by Modules.Service::__str__(), Modules.Service::_placeImpl(), Modules.ESSource::_placeImpl(), Modules.ESProducer::_placeImpl(), Modules.ESPrefer::copy(), Mixins._TypedParameterizable::dumpPython(), Modules.ESPrefer::dumpPythonAs(), Modules.Service::dumpSequencePython(), RandomRunSource.RandomRunSource::insertInto(), Modules.Service::insertInto(), ExternalGeneratorFilter.ExternalGeneratorFilter::insertInto(), Mixins._TypedParameterizable::insertInto(), Modules.ESSource::moduleLabel_(), Modules.ESProducer::moduleLabel_(), Modules.ESSource::nameInProcessDesc_(), Modules.ESProducer::nameInProcessDesc_(), Modules.ESPrefer::nameInProcessDesc_(), prefetch(), and readFromHDF5api().