CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes
edm::DataManagingProductResolver Class Referenceabstract

#include <ProductResolvers.h>

Inheritance diagram for edm::DataManagingProductResolver:
edm::DataManagingOrAliasProductResolver edm::ProductResolverBase edm::InputProductResolver edm::ProducedProductResolver edm::PuttableProductResolver edm::UnscheduledProductResolver

Public Types

enum  ProductStatus {
  ProductStatus::ProductSet, ProductStatus::NotPut, ProductStatus::ResolveFailed, ProductStatus::ResolveNotRun,
  ProductStatus::ProductDeleted
}
 

Public Member Functions

void connectTo (ProductResolverBase const &, Principal const *) final
 
 DataManagingProductResolver (std::shared_ptr< BranchDescription const > bd, ProductStatus iDefaultStatus)
 
void resetProductData_ (bool deleteEarly) override
 
void resetStatus ()
 
- Public Member Functions inherited from edm::DataManagingOrAliasProductResolver
 DataManagingOrAliasProductResolver ()
 
- Public Member Functions inherited from edm::ProductResolverBase
BranchDescription const & branchDescription () const
 
std::string const & moduleLabel () const
 
ProductResolverBaseoperator= (ProductResolverBase const &)=delete
 
void prefetchAsync (WaitingTask *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 putOrMergeProduct (std::unique_ptr< WrapperBase > edp, MergeableRunProductMetadata const *mergeableRunProductMetadata=nullptr) const
 
void putProduct (std::unique_ptr< WrapperBase > edp) 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 ()
 

Protected Member Functions

ProductStatus defaultStatus () const
 
ProductData const & getProductData () const final
 
template<bool callResolver, typename FUNC >
ProductResolverBase::Resolution resolveProductImpl (FUNC resolver) const
 
template<bool callResolver, typename FUNC >
Resolution resolveProductImpl (FUNC resolver) const
 
void setFailedStatus () const
 
void setMergeableRunProductMetadataInProductData (MergeableRunProductMetadata const *)
 
void setProduct (std::unique_ptr< WrapperBase > edp) const
 
ProductStatus status () const
 

Private Member Functions

BranchDescription const & branchDescription_ () const final
 
void checkType (WrapperBase const &prod) const
 
virtual bool isFromCurrentProcess () const =0
 
void mergeProduct (std::unique_ptr< WrapperBase > edp, MergeableRunProductMetadata const *) const
 
ProductProvenance const * productProvenancePtr_ () const final
 
bool productResolved_ () const final
 
bool productUnavailable_ () const final
 
bool productWasDeleted_ () const final
 
bool productWasFetchedAndIsValid_ (bool iSkipCurrentProcess) const final
 
Provenance const * provenance_ () const final
 
void putOrMergeProduct_ (std::unique_ptr< WrapperBase > prod, MergeableRunProductMetadata const *mergeableRunProductMetadata) const final
 
void resetBranchDescription_ (std::shared_ptr< BranchDescription const > bd) final
 
std::string const & resolvedModuleLabel_ () const final
 
void setProductID_ (ProductID const &pid) final
 
void setProductProvenanceRetriever_ (ProductProvenanceRetriever const *provRetriever) final
 
bool singleProduct_ () const final
 
void throwProductDeletedException () const
 

Private Attributes

const ProductStatus defaultStatus_
 
ProductData productData_
 
std::atomic< ProductStatustheStatus_
 

Detailed Description

Definition at line 46 of file ProductResolvers.h.

Member Enumeration Documentation

◆ ProductStatus

Enumerator
ProductSet 
NotPut 
ResolveFailed 
ResolveNotRun 
ProductDeleted 

Definition at line 48 of file ProductResolvers.h.

48 { ProductSet, NotPut, ResolveFailed, ResolveNotRun, ProductDeleted };

Constructor & Destructor Documentation

◆ DataManagingProductResolver()

edm::DataManagingProductResolver::DataManagingProductResolver ( std::shared_ptr< BranchDescription const >  bd,
ProductStatus  iDefaultStatus 
)
inline

Definition at line 50 of file ProductResolvers.h.

53  theStatus_(iDefaultStatus),
54  defaultStatus_(iDefaultStatus) {}

Member Function Documentation

◆ branchDescription_()

BranchDescription const& edm::DataManagingProductResolver::branchDescription_ ( ) const
inlinefinalprivatevirtual

Implements edm::ProductResolverBase.

Definition at line 87 of file ProductResolvers.h.

87 { return *getProductData().branchDescription(); }

References edm::ProductData::branchDescription(), and getProductData().

Referenced by mergeProduct().

◆ checkType()

void edm::DataManagingProductResolver::checkType ( WrapperBase const &  prod) const
private

Definition at line 506 of file ProductResolvers.cc.

506  {
507  // Check if the types match.
508  TypeID typeID(prod.dynamicTypeInfo());
509  if (typeID != TypeID{branchDescription().unwrappedType().unvalidatedTypeInfo()}) {
510  // Types do not match.
512  << "Product on branch " << branchDescription().branchName() << " is of wrong type.\n"
513  << "It is supposed to be of type " << branchDescription().className() << ".\n"
514  << "It is actually of type " << typeID.className() << ".\n";
515  }
516  }

References edm::ProductResolverBase::branchDescription(), edm::BranchDescription::branchName(), edm::BranchDescription::className(), edm::errors::EventCorruption, Exception, dumpMFGeometry_cfg::prod, edm::TypeWithDict::unvalidatedTypeInfo(), and edm::BranchDescription::unwrappedType().

Referenced by mergeProduct(), and setProduct().

◆ connectTo()

void edm::DataManagingProductResolver::connectTo ( ProductResolverBase const &  iOther,
Principal const *   
)
finalvirtual

Implements edm::ProductResolverBase.

Definition at line 491 of file ProductResolvers.cc.

491 { assert(false); }

References cms::cuda::assert().

◆ defaultStatus()

ProductStatus edm::DataManagingProductResolver::defaultStatus ( ) const
inlineprotected

◆ getProductData()

ProductData const& edm::DataManagingProductResolver::getProductData ( ) const
inlinefinalprotectedvirtual

◆ isFromCurrentProcess()

virtual bool edm::DataManagingProductResolver::isFromCurrentProcess ( ) const
privatepure virtual

◆ mergeProduct()

void edm::DataManagingProductResolver::mergeProduct ( std::unique_ptr< WrapperBase edp,
MergeableRunProductMetadata const *  mergeableRunProductMetadata 
) const
private

Definition at line 80 of file ProductResolvers.cc.

81  {
82  // if its not mergeable and the previous read failed, go ahead and use this one
84  setProduct(std::move(iFrom));
85  return;
86  }
87 
89  if (not iFrom) {
90  return;
91  }
92 
93  checkType(*iFrom);
94 
96  if (original->isMergeable()) {
97  if (original->isPresent() != iFrom->isPresent()) {
99  << "Merge of Run or Lumi product failed for branch " << branchDescription().branchName() << "\n"
100  << "Was trying to merge objects where one product had been put in the input file and the other had not "
101  "been."
102  << "\n"
103  << "The solution is to drop the branch on input. Or better do not create inconsistent files\n"
104  << "that need to be merged in the first place.\n";
105  }
106  if (original->isPresent()) {
107  BranchDescription const& desc = branchDescription_();
108  if (mergeableRunProductMetadata == nullptr || desc.branchType() != InRun) {
109  original->mergeProduct(iFrom.get());
110  } else {
112  mergeableRunProductMetadata->getMergeDecision(desc.processName());
113  if (decision == MergeableRunProductMetadata::MERGE) {
114  original->mergeProduct(iFrom.get());
115  } else if (decision == MergeableRunProductMetadata::REPLACE) {
116  // Note this swaps the content of the product where the
117  // both products branches are present and the product is
118  // also present (was put) in the branch. A module might
119  // have already gotten a pointer to the product so we
120  // keep those pointers valid. This does not call swap
121  // on the Wrapper.
122  original->swapProduct(iFrom.get());
123  }
124  // If the decision is IGNORE, do nothing
125  }
126  }
127  // If both have isPresent false, do nothing
128 
129  } else if (original->hasIsProductEqual()) {
130  if (original->isPresent() && iFrom->isPresent()) {
131  if (!original->isProductEqual(iFrom.get())) {
132  auto const& bd = branchDescription();
133  edm::LogError("RunLumiMerging")
134  << "ProductResolver::mergeTheProduct\n"
135  << "Two run/lumi products for the same run/lumi which should be equal are not\n"
136  << "Using the first, ignoring the second\n"
137  << "className = " << bd.className() << "\n"
138  << "moduleLabel = " << bd.moduleLabel() << "\n"
139  << "instance = " << bd.productInstanceName() << "\n"
140  << "process = " << bd.processName() << "\n";
141  }
142  } else if (!original->isPresent() && iFrom->isPresent()) {
143  setProduct(std::move(iFrom));
144  }
145  // if not iFrom->isPresent(), do nothing
146  } else {
147  auto const& bd = branchDescription();
148  edm::LogWarning("RunLumiMerging") << "ProductResolver::mergeTheProduct\n"
149  << "Run/lumi product has neither a mergeProduct nor isProductEqual function\n"
150  << "Using the first, ignoring the second in merge\n"
151  << "className = " << bd.className() << "\n"
152  << "moduleLabel = " << bd.moduleLabel() << "\n"
153  << "instance = " << bd.productInstanceName() << "\n"
154  << "process = " << bd.processName() << "\n";
155  if (!original->isPresent() && iFrom->isPresent()) {
156  setProduct(std::move(iFrom));
157  }
158  // In other cases, do nothing
159  }
160  }

References cms::cuda::assert(), edm::ProductResolverBase::branchDescription(), branchDescription_(), edm::BranchDescription::branchName(), checkType(), submitPVResolutionJobs::desc, Exception, edm::MergeableRunProductMetadata::getMergeDecision(), getProductData(), edm::InRun, edm::MergeableRunProductMetadata::MERGE, edm::errors::MismatchedInputFiles, eostools::move(), definitions::original, ProductSet, edm::MergeableRunProductMetadata::REPLACE, ResolveFailed, setProduct(), status(), and edm::ProductData::unsafe_wrapper().

Referenced by putOrMergeProduct_().

◆ productProvenancePtr_()

ProductProvenance const * edm::DataManagingProductResolver::productProvenancePtr_ ( ) const
finalprivatevirtual

Implements edm::ProductResolverBase.

Definition at line 569 of file ProductResolvers.cc.

569  {
570  return provenance()->productProvenance();
571  }

References edm::Provenance::productProvenance(), and edm::ProductResolverBase::provenance().

◆ productResolved_()

bool edm::DataManagingProductResolver::productResolved_ ( ) const
finalprivatevirtual

Implements edm::ProductResolverBase.

Definition at line 538 of file ProductResolvers.cc.

538  {
539  auto s = status();
540  return (s != defaultStatus()) or (s == ProductStatus::ProductDeleted);
541  }

References defaultStatus(), or, ProductDeleted, alignCSCRings::s, and status().

◆ productUnavailable_()

bool edm::DataManagingProductResolver::productUnavailable_ ( ) const
finalprivatevirtual

Implements edm::ProductResolverBase.

Definition at line 530 of file ProductResolvers.cc.

530  {
531  auto presentStatus = status();
532  if (presentStatus == ProductStatus::ProductSet) {
533  return !(getProductData().wrapper()->isPresent());
534  }
535  return presentStatus != ProductStatus::ResolveNotRun;
536  }

References getProductData(), edm::WrapperBase::isPresent(), ProductSet, ResolveNotRun, status(), and edm::ProductData::wrapper().

◆ productWasDeleted_()

bool edm::DataManagingProductResolver::productWasDeleted_ ( ) const
finalprivatevirtual

Implements edm::ProductResolverBase.

Definition at line 544 of file ProductResolvers.cc.

544 { return status() == ProductStatus::ProductDeleted; }

References ProductDeleted, and status().

◆ productWasFetchedAndIsValid_()

bool edm::DataManagingProductResolver::productWasFetchedAndIsValid_ ( bool  iSkipCurrentProcess) const
finalprivatevirtual

Implements edm::ProductResolverBase.

Definition at line 546 of file ProductResolvers.cc.

546  {
547  if (iSkipCurrentProcess and isFromCurrentProcess()) {
548  return false;
549  }
551  if (getProductData().wrapper()->isPresent()) {
552  return true;
553  }
554  }
555  return false;
556  }

References getProductData(), isFromCurrentProcess(), ProductSet, status(), and wrapper.

◆ provenance_()

Provenance const* edm::DataManagingProductResolver::provenance_ ( ) const
inlinefinalprivatevirtual

Implements edm::ProductResolverBase.

Definition at line 91 of file ProductResolvers.h.

91 { return &productData_.provenance(); }

References productData_, and edm::ProductData::provenance().

◆ putOrMergeProduct_()

void edm::DataManagingProductResolver::putOrMergeProduct_ ( std::unique_ptr< WrapperBase prod,
MergeableRunProductMetadata const *  mergeableRunProductMetadata 
) const
finalprivatevirtual

Implements edm::ProductResolverBase.

Definition at line 493 of file ProductResolvers.cc.

494  {
495  if (not prod) {
496  return;
497  }
498  if (status() == defaultStatus()) {
499  //resolveProduct has not been called or it failed
501  } else {
502  mergeProduct(std::move(prod), mergeableRunProductMetadata);
503  }
504  }

References defaultStatus(), mergeProduct(), eostools::move(), dumpMFGeometry_cfg::prod, edm::ProductResolverBase::putProduct(), and status().

◆ resetBranchDescription_()

void edm::DataManagingProductResolver::resetBranchDescription_ ( std::shared_ptr< BranchDescription const >  bd)
inlinefinalprivatevirtual

◆ resetProductData_()

void edm::DataManagingProductResolver::resetProductData_ ( bool  deleteEarly)
overridevirtual

◆ resetStatus()

void edm::DataManagingProductResolver::resetStatus ( )
inline

Definition at line 58 of file ProductResolvers.h.

References defaultStatus_, and theStatus_.

Referenced by resetProductData_().

◆ resolvedModuleLabel_()

std::string const& edm::DataManagingProductResolver::resolvedModuleLabel_ ( ) const
inlinefinalprivatevirtual

Implements edm::ProductResolverBase.

Definition at line 93 of file ProductResolvers.h.

93 { return moduleLabel(); }

References edm::ProductResolverBase::moduleLabel().

◆ resolveProductImpl() [1/2]

template<bool callResolver, typename FUNC >
ProductResolverBase::Resolution edm::DataManagingProductResolver::resolveProductImpl ( FUNC  resolver) const
protected

Definition at line 48 of file ProductResolvers.cc.

48  {
49  if (productWasDeleted()) {
51  }
52  auto presentStatus = status();
53 
54  if (callResolver && presentStatus == ProductStatus::ResolveNotRun) {
55  //if resolver fails because of exception or not setting product
56  // make sure the status goes to failed
57  auto failedStatusSetter = [this](ProductStatus* iPresentStatus) {
58  if (this->status() == ProductStatus::ResolveNotRun) {
59  this->setFailedStatus();
60  }
61  *iPresentStatus = this->status();
62  };
63  std::unique_ptr<ProductStatus, decltype(failedStatusSetter)> failedStatusGuard(&presentStatus,
64  failedStatusSetter);
65 
66  //If successful, this will call setProduct
67  resolver();
68  }
69 
70  if (presentStatus == ProductStatus::ProductSet) {
71  auto pd = &getProductData();
72  if (pd->wrapper()->isPresent()) {
73  return Resolution(pd);
74  }
75  }
76 
77  return Resolution(nullptr);
78  }

References getProductData(), ProductSet, edm::ProductResolverBase::productWasDeleted(), Resolution, ResolveNotRun, setFailedStatus(), status(), and throwProductDeletedException().

◆ resolveProductImpl() [2/2]

template<bool callResolver, typename FUNC >
Resolution edm::DataManagingProductResolver::resolveProductImpl ( FUNC  resolver) const
protected

◆ setFailedStatus()

void edm::DataManagingProductResolver::setFailedStatus ( ) const
inlineprotected

◆ setMergeableRunProductMetadataInProductData()

void edm::DataManagingProductResolver::setMergeableRunProductMetadataInProductData ( MergeableRunProductMetadata const *  mrpm)
protected

◆ setProduct()

void edm::DataManagingProductResolver::setProduct ( std::unique_ptr< WrapperBase edp) const
protected

◆ setProductID_()

void edm::DataManagingProductResolver::setProductID_ ( ProductID const &  pid)
finalprivatevirtual

Implements edm::ProductResolverBase.

Definition at line 562 of file ProductResolvers.cc.

562 { productData_.setProductID(pid); }

References productData_, and edm::ProductData::setProductID().

◆ setProductProvenanceRetriever_()

void edm::DataManagingProductResolver::setProductProvenanceRetriever_ ( ProductProvenanceRetriever const *  provRetriever)
finalprivatevirtual

Implements edm::ProductResolverBase.

Definition at line 558 of file ProductResolvers.cc.

558  {
559  productData_.setProvenance(provRetriever);
560  }

References productData_, and edm::ProductData::setProvenance().

◆ singleProduct_()

bool edm::DataManagingProductResolver::singleProduct_ ( ) const
finalprivatevirtual

Implements edm::ProductResolverBase.

Definition at line 584 of file ProductResolvers.cc.

584 { return true; }

◆ status()

ProductStatus edm::DataManagingProductResolver::status ( void  ) const
inlineprotected

◆ throwProductDeletedException()

void edm::DataManagingProductResolver::throwProductDeletedException ( ) const
private

Definition at line 34 of file ProductResolvers.cc.

34  {
36  exception << "DataManagingProductResolver::resolveProduct_: The product matching all criteria was already deleted\n"
37  << "Looking for type: " << branchDescription().unwrappedTypeID() << "\n"
38  << "Looking for module label: " << moduleLabel() << "\n"
39  << "Looking for productInstanceName: " << productInstanceName() << "\n"
40  << (processName().empty() ? "" : "Looking for process: ") << processName() << "\n"
41  << "This means there is a configuration error.\n"
42  << "The module which is asking for this data must be configured to state that it will read this data.";
43  throw exception;
44  }

References edm::ProductResolverBase::branchDescription(), cppFunctionSkipper::exception, edm::ProductResolverBase::moduleLabel(), edm::ProductResolverBase::processName(), edm::ProductResolverBase::productInstanceName(), and edm::BranchDescription::unwrappedTypeID().

Referenced by resolveProductImpl().

Member Data Documentation

◆ defaultStatus_

const ProductStatus edm::DataManagingProductResolver::defaultStatus_
private

Definition at line 101 of file ProductResolvers.h.

Referenced by defaultStatus(), and resetStatus().

◆ productData_

ProductData edm::DataManagingProductResolver::productData_
private

◆ theStatus_

std::atomic<ProductStatus> edm::DataManagingProductResolver::theStatus_
mutableprivate
edm::ProductResolverBase::provenance
Provenance const * provenance() const
Definition: ProductResolverBase.cc:31
edm::DataManagingOrAliasProductResolver::DataManagingOrAliasProductResolver
DataManagingOrAliasProductResolver()
Definition: ProductResolvers.h:39
edm::errors::MismatchedInputFiles
Definition: EDMException.h:52
edm::ProductResolverBase::putProduct
void putProduct(std::unique_ptr< WrapperBase > edp) const
Definition: ProductResolverBase.h:163
edm::MergeableRunProductMetadata::MERGE
Definition: MergeableRunProductMetadata.h:54
edm::BranchDescription::unwrappedType
TypeWithDict const & unwrappedType() const
Definition: BranchDescription.h:94
edm::ProductData::wrapper
WrapperBase const * wrapper() const
Definition: ProductData.h:35
edm::TypeWithDict::unvalidatedTypeInfo
std::type_info const & unvalidatedTypeInfo() const
Definition: TypeWithDict.h:81
deep_tau::DeepTauBase::BasicDiscriminator
BasicDiscriminator
Definition: DeepTauBase.h:115
edm::Provenance::productProvenance
ProductProvenance const * productProvenance() const
Definition: Provenance.cc:24
edm::errors::EventCorruption
Definition: EDMException.h:43
edm::DataManagingProductResolver::theStatus_
std::atomic< ProductStatus > theStatus_
Definition: ProductResolvers.h:100
cms::cuda::assert
assert(be >=bs)
edm::DataManagingProductResolver::ProductStatus::ProductDeleted
wrapper
static HepMC::HEPEVT_Wrapper wrapper
Definition: BeamHaloProducer.cc:47
edm::DataManagingProductResolver::defaultStatus_
const ProductStatus defaultStatus_
Definition: ProductResolvers.h:101
edm::DataManagingProductResolver::defaultStatus
ProductStatus defaultStatus() const
Definition: ProductResolvers.h:65
edm::LogWarning
Log< level::Warning, false > LogWarning
Definition: MessageLogger.h:122
edm::InRun
Definition: BranchType.h:11
edm::ProductData::provenance
Provenance const & provenance() const
Definition: ProductData.h:33
edm::DataManagingProductResolver::productData_
ProductData productData_
Definition: ProductResolvers.h:99
alignCSCRings.s
s
Definition: alignCSCRings.py:92
edm::ProductData::resetBranchDescription
void resetBranchDescription(std::shared_ptr< BranchDescription const > bd)
Definition: ProductData.cc:20
edm::DataManagingProductResolver::setProduct
void setProduct(std::unique_ptr< WrapperBase > edp) const
Definition: ProductResolvers.cc:518
edm::DataManagingProductResolver::mergeProduct
void mergeProduct(std::unique_ptr< WrapperBase > edp, MergeableRunProductMetadata const *) const
Definition: ProductResolvers.cc:80
dumpMFGeometry_cfg.prod
prod
Definition: dumpMFGeometry_cfg.py:24
edm::ProductResolverBase::processName
std::string const & processName() const
Definition: ProductResolverBase.h:130
edm::BranchDescription::unwrappedTypeID
TypeID unwrappedTypeID() const
Definition: BranchDescription.h:97
edm::DataManagingProductResolver::throwProductDeletedException
void throwProductDeletedException() const
Definition: ProductResolvers.cc:34
cppFunctionSkipper.exception
exception
Definition: cppFunctionSkipper.py:10
Resolution
Definition: trackSplitPlot.h:33
edm::ProductData::setProvenance
void setProvenance(ProductProvenanceRetriever const *provRetriever)
Definition: ProductData.h:56
edm::DataManagingProductResolver::ProductStatus
ProductStatus
Definition: ProductResolvers.h:48
edm::DataManagingProductResolver::ProductStatus::ProductSet
definitions.original
original
Definition: definitions.py:57
edm::MergeableRunProductMetadata::MergeDecision
MergeDecision
Definition: MergeableRunProductMetadata.h:54
edm::DataManagingProductResolver::ProductStatus::ResolveNotRun
edm::BranchDescription::branchName
std::string const & branchName() const
Definition: BranchDescription.h:119
edm::LogError
Log< level::Error, false > LogError
Definition: MessageLogger.h:123
edm::ProductResolverBase::moduleLabel
std::string const & moduleLabel() const
Definition: ProductResolverBase.h:119
cms::cuda::device::unique_ptr
std::unique_ptr< T, impl::DeviceDeleter > unique_ptr
Definition: device_unique_ptr.h:33
ProductDeletedException
edm::DataManagingProductResolver::branchDescription_
BranchDescription const & branchDescription_() const final
Definition: ProductResolvers.h:87
edm::DataManagingProductResolver::checkType
void checkType(WrapperBase const &prod) const
Definition: ProductResolvers.cc:506
edm::ProductData::unsafe_wrapper
WrapperBase * unsafe_wrapper() const
Definition: ProductData.h:36
submitPVResolutionJobs.desc
string desc
Definition: submitPVResolutionJobs.py:251
edm::DataManagingProductResolver::status
ProductStatus status() const
Definition: ProductResolvers.h:64
edm::DataManagingProductResolver::getProductData
ProductData const & getProductData() const final
Definition: ProductResolvers.h:70
eostools.move
def move(src, dest)
Definition: eostools.py:511
edm::ProductResolverBase::branchDescription
BranchDescription const & branchDescription() const
Definition: ProductResolverBase.h:110
edm::WrapperBase::isPresent
bool isPresent() const
Definition: WrapperBase.h:30
edm::ProductData::setMergeableRunProductMetadata
void setMergeableRunProductMetadata(MergeableRunProductMetadataBase const *mrpm)
Definition: ProductData.h:60
edm::ProductData::branchDescription
std::shared_ptr< BranchDescription const > const & branchDescription() const
Definition: ProductData.h:29
Exception
Definition: hltDiff.cc:246
edm::MergeableRunProductMetadata::REPLACE
Definition: MergeableRunProductMetadata.h:54
edm::DataManagingProductResolver::setFailedStatus
void setFailedStatus() const
Definition: ProductResolvers.h:66
edm::ProductResolverBase::productWasDeleted
bool productWasDeleted() const
Definition: ProductResolverBase.h:100
or
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventID const &, edm::Timestamp const & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
edm::DataManagingProductResolver::resetStatus
void resetStatus()
Definition: ProductResolvers.h:58
edm::BranchDescription::className
std::string const & className() const
Definition: BranchDescription.h:79
edm::ProductResolverBase::productInstanceName
std::string const & productInstanceName() const
Definition: ProductResolverBase.h:127
edm::ProductData::resetProductData
void resetProductData()
Definition: ProductData.h:52
edm::ProductData::setProductID
void setProductID(ProductID const &pid)
Definition: ProductData.h:58
edm::DataManagingProductResolver::isFromCurrentProcess
virtual bool isFromCurrentProcess() const =0
edm::DataManagingProductResolver::ProductStatus::ResolveFailed
edm::ProductData::unsafe_setWrapper
void unsafe_setWrapper(std::unique_ptr< WrapperBase > iValue) const
Definition: ProductData.cc:27