CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Classes | Public Member Functions | Private Member Functions
edm::ProductResolverBase Class Referenceabstract

#include <ProductResolverBase.h>

Inheritance diagram for edm::ProductResolverBase:
edm::DataManagingOrAliasProductResolver edm::NoProcessProductResolver edm::ParentProcessProductResolver edm::SingleChoiceNoProcessProductResolver edm::AliasProductResolver edm::DataManagingProductResolver edm::SwitchBaseProductResolver edm::MergeableInputProductResolver edm::ProducedProductResolver edm::SwitchAliasProductResolver edm::SwitchProducerProductResolver edm::DelayedReaderInputProductResolver edm::PutOnReadInputProductResolver edm::PuttableProductResolver edm::UnscheduledProductResolver

Classes

class  Resolution
 

Public Member Functions

BranchDescription const & branchDescription () const
 
virtual void connectTo (ProductResolverBase const &, Principal const *)=0
 
std::string const & moduleLabel () const
 
ProductResolverBaseoperator= (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 ()
 

Private Member Functions

virtual BranchDescription const & branchDescription_ () const =0
 
virtual void prefetchAsync_ (WaitingTaskHolder waitTask, Principal const &principal, bool skipCurrentProcess, ServiceToken const &token, SharedResourcesAcquirer *sra, ModuleCallingContext const *mcc) const =0
 
virtual ProductProvenance const * productProvenancePtr_ () const =0
 
virtual bool productResolved_ () const =0
 
virtual bool productUnavailable_ () const =0
 
virtual bool productWasDeleted_ () const =0
 
virtual bool productWasFetchedAndIsValid_ (bool iSkipCurrentProcess) const =0
 
virtual Provenance const * provenance_ () const =0
 
virtual void resetBranchDescription_ (std::shared_ptr< BranchDescription const > bd)=0
 
virtual void resetProductData_ (bool deleteEarly)=0
 
virtual std::string const & resolvedModuleLabel_ () const =0
 
virtual Resolution resolveProduct_ (Principal const &principal, bool skipCurrentProcess, SharedResourcesAcquirer *sra, ModuleCallingContext const *mcc) const =0
 
virtual void retrieveAndMerge_ (Principal const &principal, MergeableRunProductMetadata const *mergeableRunProductMetadata) const
 
virtual void setMergeableRunProductMetadata_ (MergeableRunProductMetadata const *)
 
virtual void setProductID_ (ProductID const &pid)=0
 
virtual void setProductProvenanceRetriever_ (ProductProvenanceRetriever const *provRetriever)=0
 
virtual bool singleProduct_ () const =0
 
virtual bool unscheduledWasNotRun_ () const =0
 

Detailed Description

Definition at line 34 of file ProductResolverBase.h.

Constructor & Destructor Documentation

edm::ProductResolverBase::ProductResolverBase ( )

Definition at line 14 of file ProductResolverBase.cc.

14 {}
edm::ProductResolverBase::~ProductResolverBase ( )
virtual

Definition at line 16 of file ProductResolverBase.cc.

16 {}
edm::ProductResolverBase::ProductResolverBase ( ProductResolverBase const &  )
delete

Member Function Documentation

BranchDescription const& edm::ProductResolverBase::branchDescription ( ) const
inline
virtual BranchDescription const& edm::ProductResolverBase::branchDescription_ ( ) const
privatepure virtual
virtual void edm::ProductResolverBase::connectTo ( ProductResolverBase const &  ,
Principal const *   
)
pure virtual
std::string const& edm::ProductResolverBase::moduleLabel ( ) const
inline
ProductResolverBase& edm::ProductResolverBase::operator= ( ProductResolverBase const &  )
delete
void edm::ProductResolverBase::prefetchAsync ( WaitingTaskHolder  waitTask,
Principal const &  principal,
bool  skipCurrentProcess,
ServiceToken const &  token,
SharedResourcesAcquirer sra,
ModuleCallingContext const *  mcc 
) const
inline

oDataFetchedIsValid is allowed to be nullptr in which case no value will be assigned

Definition at line 69 of file ProductResolverBase.h.

References prefetchAsync_().

Referenced by edm::SwitchAliasProductResolver::prefetchAsync_(), and edm::NoProcessProductResolver::tryPrefetchResolverAsync().

74  {
75  return prefetchAsync_(waitTask, principal, skipCurrentProcess, token, sra, mcc);
76  }
virtual void prefetchAsync_(WaitingTaskHolder waitTask, Principal const &principal, bool skipCurrentProcess, ServiceToken const &token, SharedResourcesAcquirer *sra, ModuleCallingContext const *mcc) const =0
virtual void edm::ProductResolverBase::prefetchAsync_ ( WaitingTaskHolder  waitTask,
Principal const &  principal,
bool  skipCurrentProcess,
ServiceToken const &  token,
SharedResourcesAcquirer sra,
ModuleCallingContext const *  mcc 
) const
privatepure virtual
std::string const& edm::ProductResolverBase::processName ( ) const
inline

Definition at line 130 of file ProductResolverBase.h.

References branchDescription(), and edm::BranchDescription::processName().

Referenced by edm::DataManagingProductResolver::throwProductDeletedException().

130 { return branchDescription().processName(); }
std::string const & processName() const
BranchDescription const & branchDescription() const
ProductID const& edm::ProductResolverBase::productID ( ) const
inline

Definition at line 160 of file ProductResolverBase.h.

References edm::Provenance::productID(), and provenance().

Referenced by write().

160 { return provenance()->productID(); }
Provenance const * provenance() const
ProductID const & productID() const
Definition: Provenance.h:79
std::string const& edm::ProductResolverBase::productInstanceName ( ) const
inline

Definition at line 127 of file ProductResolverBase.h.

References branchDescription(), and edm::BranchDescription::productInstanceName().

Referenced by edm::DataManagingProductResolver::throwProductDeletedException().

std::string const & productInstanceName() const
BranchDescription const & branchDescription() const
ProductProvenance const* edm::ProductResolverBase::productProvenancePtr ( ) const
inline

Definition at line 107 of file ProductResolverBase.h.

References productProvenancePtr_().

107 { return productProvenancePtr_(); }
virtual ProductProvenance const * productProvenancePtr_() const =0
virtual ProductProvenance const* edm::ProductResolverBase::productProvenancePtr_ ( ) const
privatepure virtual
bool edm::ProductResolverBase::productResolved ( ) const
inline
virtual bool edm::ProductResolverBase::productResolved_ ( ) const
privatepure virtual
TypeID edm::ProductResolverBase::productType ( ) const

Definition at line 29 of file ProductResolverBase.cc.

References branchDescription().

29 { return TypeID(branchDescription().wrappedTypeID()); }
BranchDescription const & branchDescription() const
bool edm::ProductResolverBase::productUnavailable ( ) const
inline
virtual bool edm::ProductResolverBase::productUnavailable_ ( ) const
privatepure virtual
bool edm::ProductResolverBase::productWasDeleted ( ) const
inline

Definition at line 100 of file ProductResolverBase.h.

References productWasDeleted_().

Referenced by edm::DataManagingProductResolver::resolveProductImpl().

100 { return productWasDeleted_(); }
virtual bool productWasDeleted_() const =0
virtual bool edm::ProductResolverBase::productWasDeleted_ ( ) const
privatepure virtual
bool edm::ProductResolverBase::productWasFetchedAndIsValid ( bool  iSkipCurrentProcess) const
inline

Definition at line 102 of file ProductResolverBase.h.

References productWasFetchedAndIsValid_().

Referenced by edm::NoProcessProductResolver::dataValidFromResolver().

102  {
103  return productWasFetchedAndIsValid_(iSkipCurrentProcess);
104  }
virtual bool productWasFetchedAndIsValid_(bool iSkipCurrentProcess) const =0
virtual bool edm::ProductResolverBase::productWasFetchedAndIsValid_ ( bool  iSkipCurrentProcess) const
privatepure virtual
Provenance const * edm::ProductResolverBase::provenance ( ) const
virtual Provenance const* edm::ProductResolverBase::provenance_ ( ) const
privatepure virtual
bool edm::ProductResolverBase::provenanceAvailable ( ) const

Definition at line 18 of file ProductResolverBase.cc.

References branchDescription(), and productResolved().

18  {
19  // If this product is from a the current process,
20  // the provenance is available if and only if a product has been put.
21  if (branchDescription().produced()) {
22  return productResolved();
23  }
24  // If this product is from a prior process, the provenance is available,
25  // although the per event part may have been dropped.
26  return true;
27  }
BranchDescription const & branchDescription() const
void edm::ProductResolverBase::resetBranchDescription ( std::shared_ptr< BranchDescription const >  bd)
inline

Definition at line 116 of file ProductResolverBase.h.

References resetBranchDescription_().

Referenced by edm::Principal::adjustToNewProductRegistry().

virtual void resetBranchDescription_(std::shared_ptr< BranchDescription const > bd)=0
virtual void edm::ProductResolverBase::resetBranchDescription_ ( std::shared_ptr< BranchDescription const >  bd)
privatepure virtual
void edm::ProductResolverBase::resetProductData ( )
inline

Definition at line 82 of file ProductResolverBase.h.

References resetProductData_().

82 { resetProductData_(false); }
virtual void resetProductData_(bool deleteEarly)=0
virtual void edm::ProductResolverBase::resetProductData_ ( bool  deleteEarly)
privatepure virtual
std::string const& edm::ProductResolverBase::resolvedModuleLabel ( ) const
inline

Definition at line 124 of file ProductResolverBase.h.

References resolvedModuleLabel_().

124 { return resolvedModuleLabel_(); }
virtual std::string const & resolvedModuleLabel_() const =0
virtual std::string const& edm::ProductResolverBase::resolvedModuleLabel_ ( ) const
privatepure virtual
Resolution edm::ProductResolverBase::resolveProduct ( Principal const &  principal,
bool  skipCurrentProcess,
SharedResourcesAcquirer sra,
ModuleCallingContext const *  mcc 
) const
inline

Definition at line 60 of file ProductResolverBase.h.

References resolveProduct_().

Referenced by edm::SwitchProducerProductResolver::resolveProduct_(), edm::SwitchAliasProductResolver::resolveProduct_(), and edm::NoProcessProductResolver::tryResolver().

63  {
64  return resolveProduct_(principal, skipCurrentProcess, sra, mcc);
65  }
virtual Resolution resolveProduct_(Principal const &principal, bool skipCurrentProcess, SharedResourcesAcquirer *sra, ModuleCallingContext const *mcc) const =0
virtual Resolution edm::ProductResolverBase::resolveProduct_ ( Principal const &  principal,
bool  skipCurrentProcess,
SharedResourcesAcquirer sra,
ModuleCallingContext const *  mcc 
) const
privatepure virtual
void edm::ProductResolverBase::retrieveAndMerge ( Principal const &  principal,
MergeableRunProductMetadata const *  mergeableRunProductMetadata 
) const
inline

Definition at line 78 of file ProductResolverBase.h.

References retrieveAndMerge_().

79  {
80  retrieveAndMerge_(principal, mergeableRunProductMetadata);
81  }
virtual void retrieveAndMerge_(Principal const &principal, MergeableRunProductMetadata const *mergeableRunProductMetadata) const
void edm::ProductResolverBase::retrieveAndMerge_ ( Principal const &  principal,
MergeableRunProductMetadata const *  mergeableRunProductMetadata 
) const
privatevirtual

Reimplemented in edm::DelayedReaderInputProductResolver.

Definition at line 33 of file ProductResolverBase.cc.

Referenced by retrieveAndMerge().

33 {}
void edm::ProductResolverBase::setMergeableRunProductMetadata ( MergeableRunProductMetadata const *  mrpm)
inline

Definition at line 147 of file ProductResolverBase.h.

References setMergeableRunProductMetadata_().

147  {
149  }
virtual void setMergeableRunProductMetadata_(MergeableRunProductMetadata const *)
void edm::ProductResolverBase::setMergeableRunProductMetadata_ ( MergeableRunProductMetadata const *  )
privatevirtual

Reimplemented in edm::DelayedReaderInputProductResolver.

Definition at line 35 of file ProductResolverBase.cc.

Referenced by setMergeableRunProductMetadata().

35 {}
void edm::ProductResolverBase::setProductID ( ProductID const &  pid)
inline

Definition at line 144 of file ProductResolverBase.h.

References setProductID_().

Referenced by edm::AliasProductResolver::setProductID_().

144 { setProductID_(pid); }
virtual void setProductID_(ProductID const &pid)=0
virtual void edm::ProductResolverBase::setProductID_ ( ProductID const &  pid)
privatepure virtual
void edm::ProductResolverBase::setProductProvenanceRetriever ( ProductProvenanceRetriever const *  provRetriever)
inline

Definition at line 139 of file ProductResolverBase.h.

References setProductProvenanceRetriever_().

Referenced by edm::AliasProductResolver::setProductProvenanceRetriever_().

139  {
140  setProductProvenanceRetriever_(provRetriever);
141  }
virtual void setProductProvenanceRetriever_(ProductProvenanceRetriever const *provRetriever)=0
virtual void edm::ProductResolverBase::setProductProvenanceRetriever_ ( ProductProvenanceRetriever const *  provRetriever)
privatepure virtual
void edm::ProductResolverBase::setupUnscheduled ( UnscheduledConfigurator const &  )
virtual
bool edm::ProductResolverBase::singleProduct ( ) const
inline

Definition at line 113 of file ProductResolverBase.h.

References singleProduct_().

113 { return singleProduct_(); }
virtual bool singleProduct_() const =0
virtual bool edm::ProductResolverBase::singleProduct_ ( ) const
privatepure virtual
StableProvenance const* edm::ProductResolverBase::stableProvenance ( ) const
inline

Definition at line 136 of file ProductResolverBase.h.

References provenance(), and edm::Provenance::stable().

Referenced by edm::PrincipalGetAdapter::getProductID().

136 { return &provenance()->stable(); }
Provenance const * provenance() const
StableProvenance const & stable() const
Definition: Provenance.h:42
void edm::ProductResolverBase::unsafe_deleteProduct ( ) const
inline

Definition at line 84 of file ProductResolverBase.h.

References resetProductData_().

84 { const_cast<ProductResolverBase*>(this)->resetProductData_(true); }
virtual void resetProductData_(bool deleteEarly)=0
bool edm::ProductResolverBase::unscheduledWasNotRun ( ) const
inline

Definition at line 97 of file ProductResolverBase.h.

References unscheduledWasNotRun_().

Referenced by edm::SwitchAliasProductResolver::unscheduledWasNotRun_().

97 { return unscheduledWasNotRun_(); }
virtual bool unscheduledWasNotRun_() const =0
virtual bool edm::ProductResolverBase::unscheduledWasNotRun_ ( ) const
privatepure virtual
void edm::ProductResolverBase::write ( std::ostream &  os) const

Definition at line 37 of file ProductResolverBase.cc.

References productID(), and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by pkg.AbstractPkg::generate(), and edm::operator<<().

37  {
38  // This is grossly inadequate. It is also not critical for the
39  // first pass.
40  os << std::string("ProductResolver for product with ID: ") << productID();
41  }
ProductID const & productID() const