|
| MergeableInputProductResolver (std::shared_ptr< BranchDescription const > bd, ProductStatus iDefaultStatus) |
|
void | connectTo (ProductResolverBase const &, Principal const *) final |
|
| DataManagingProductResolver (std::shared_ptr< BranchDescription const > bd, ProductStatus iDefaultStatus) |
|
void | resetProductData_ (bool deleteEarly) override |
|
void | resetStatus () |
|
template<bool callResolver, typename FUNC > |
ProductResolverBase::Resolution | resolveProductImpl (FUNC resolver) const |
|
| DataManagingOrAliasProductResolver () |
|
BranchDescription const & | branchDescription () const |
|
std::string const & | moduleLabel () const |
|
ProductResolverBase & | operator= (ProductResolverBase const &)=delete |
|
void | prefetchAsync (WaitingTaskHolder waitTask, Principal const &principal, bool skipCurrentProcess, ServiceToken const &token, SharedResourcesAcquirer *sra, ModuleCallingContext const *mcc) const |
|
std::string const & | processName () const |
|
ProductID const & | productID () const |
|
std::string const & | productInstanceName () const |
|
ProductProvenance const * | productProvenancePtr () const |
|
bool | productResolved () const |
|
| ProductResolverBase () |
|
| ProductResolverBase (ProductResolverBase const &)=delete |
|
TypeID | productType () const |
|
bool | productUnavailable () const |
|
bool | productWasDeleted () const |
|
bool | productWasFetchedAndIsValid (bool iSkipCurrentProcess) const |
|
Provenance const * | provenance () const |
|
bool | provenanceAvailable () const |
|
void | resetBranchDescription (std::shared_ptr< BranchDescription const > bd) |
|
void | resetProductData () |
|
std::string const & | resolvedModuleLabel () const |
|
Resolution | resolveProduct (Principal const &principal, bool skipCurrentProcess, SharedResourcesAcquirer *sra, ModuleCallingContext const *mcc) const |
|
void | retrieveAndMerge (Principal const &principal, MergeableRunProductMetadata const *mergeableRunProductMetadata) const |
|
void | setMergeableRunProductMetadata (MergeableRunProductMetadata const *mrpm) |
|
void | setProductID (ProductID const &pid) |
|
void | setProductProvenanceRetriever (ProductProvenanceRetriever const *provRetriever) |
|
virtual void | setupUnscheduled (UnscheduledConfigurator const &) |
|
bool | singleProduct () const |
|
StableProvenance const * | stableProvenance () const |
|
void | unsafe_deleteProduct () const |
|
bool | unscheduledWasNotRun () const |
|
void | write (std::ostream &os) const |
|
virtual | ~ProductResolverBase () |
|
Definition at line 106 of file ProductResolvers.h.
Definition at line 79 of file ProductResolvers.cc.
References cms::cuda::assert(), edm::ProductResolverBase::branchDescription(), edm::BranchDescription::branchName(), edm::DataManagingProductResolver::checkType(), submitPVResolutionJobs::desc, Exception, edm::MergeableRunProductMetadata::getMergeDecision(), edm::DataManagingProductResolver::getProductData(), edm::InRun, edm::MergeableRunProductMetadata::MERGE, edm::errors::MismatchedInputFiles, eostools::move(), definitions::original, edm::DataManagingProductResolver::ProductSet, edm::MergeableRunProductMetadata::REPLACE, edm::DataManagingProductResolver::ResolveFailed, edm::DataManagingProductResolver::setProduct(), edm::DataManagingProductResolver::status(), and edm::ProductData::unsafe_wrapper().
Referenced by setOrMergeProduct().
96 if (
original->isPresent() != iFrom->isPresent()) {
99 <<
"Was trying to merge objects where one product had been put in the input file and the other had not " 102 <<
"The solution is to drop the branch on input. Or better do not create inconsistent files\n" 103 <<
"that need to be merged in the first place.\n";
107 if (mergeableRunProductMetadata ==
nullptr ||
desc.branchType() !=
InRun) {
108 original->mergeProduct(iFrom.get());
111 mergeableRunProductMetadata->getMergeDecision(
desc.processName());
113 original->mergeProduct(iFrom.get());
128 }
else if (
original->hasIsProductEqual()) {
129 if (
original->isPresent() && iFrom->isPresent()) {
130 if (!
original->isProductEqual(iFrom.get())) {
133 <<
"ProductResolver::mergeTheProduct\n" 134 <<
"Two run/lumi products for the same run/lumi which should be equal are not\n" 135 <<
"Using the first, ignoring the second\n" 136 <<
"className = " <<
bd.className() <<
"\n" 137 <<
"moduleLabel = " <<
bd.moduleLabel() <<
"\n" 138 <<
"instance = " <<
bd.productInstanceName() <<
"\n" 139 <<
"process = " <<
bd.processName() <<
"\n";
141 }
else if (!
original->isPresent() && iFrom->isPresent()) {
147 edm::LogWarning(
"RunLumiMerging") <<
"ProductResolver::mergeTheProduct\n" 148 <<
"Run/lumi product has neither a mergeProduct nor isProductEqual function\n" 149 <<
"Using the first, ignoring the second in merge\n" 150 <<
"className = " <<
bd.className() <<
"\n" 151 <<
"moduleLabel = " <<
bd.moduleLabel() <<
"\n" 152 <<
"instance = " <<
bd.productInstanceName() <<
"\n" 153 <<
"process = " <<
bd.processName() <<
"\n";
154 if (!
original->isPresent() && iFrom->isPresent()) {
void checkType(WrapperBase const &prod) const
ProductStatus status() const
Log< level::Error, false > LogError
ProductData const & getProductData() const final
std::string const & branchName() const
WrapperBase * unsafe_wrapper() const
BranchDescription const & branchDescription() const
void setProduct(std::unique_ptr< WrapperBase > edp) const
Log< level::Warning, false > LogWarning