CMS 3D CMS Logo

List of all members | Classes | Public Member Functions | Private Member Functions
edm::ProductResolverBase Class Referenceabstract

#include <ProductResolverBase.h>

Inheritance diagram for edm::ProductResolverBase:
edm::AliasProductResolver edm::DataManagingProductResolver edm::NoProcessProductResolver edm::ParentProcessProductResolver edm::SingleChoiceNoProcessProductResolver edm::InputProductResolver edm::ProducedProductResolver 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 (WaitingTask *waitTask, Principal const &principal, bool skipCurrentProcess, 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) const
 
void putProduct (std::unique_ptr< WrapperBase > edp) const
 
void resetBranchDescription (std::shared_ptr< BranchDescription const > bd)
 
virtual void resetFailedFromThisProcess ()
 
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) const
 
void setProcessHistory (ProcessHistory const &ph)
 
void setProvenance (ProductProvenanceRetriever const *provRetriever, ProcessHistory const &ph, ProductID const &pid)
 
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_ (WaitingTask *waitTask, Principal const &principal, bool skipCurrentProcess, 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 putOrMergeProduct_ (std::unique_ptr< WrapperBase > edp) const =0
 
virtual void putProduct_ (std::unique_ptr< WrapperBase > edp) 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) const
 
virtual void setProcessHistory_ (ProcessHistory const &ph)=0
 
virtual void setProvenance_ (ProductProvenanceRetriever const *provRetriever, ProcessHistory const &ph, ProductID const &pid)=0
 
virtual bool singleProduct_ () const =0
 
virtual bool unscheduledWasNotRun_ () const =0
 

Detailed Description

Definition at line 32 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 ( WaitingTask waitTask,
Principal const &  principal,
bool  skipCurrentProcess,
SharedResourcesAcquirer sra,
ModuleCallingContext const *  mcc 
) const
inline

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

Definition at line 66 of file ProductResolverBase.h.

References prefetchAsync_().

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

70  {
71  return prefetchAsync_(waitTask, principal, skipCurrentProcess, sra, mcc);
72  }
def principal(options)
virtual void prefetchAsync_(WaitingTask *waitTask, Principal const &principal, bool skipCurrentProcess, SharedResourcesAcquirer *sra, ModuleCallingContext const *mcc) const =0
virtual void edm::ProductResolverBase::prefetchAsync_ ( WaitingTask waitTask,
Principal const &  principal,
bool  skipCurrentProcess,
SharedResourcesAcquirer sra,
ModuleCallingContext const *  mcc 
) const
privatepure virtual
std::string const& edm::ProductResolverBase::processName ( ) const
inline

Definition at line 127 of file ProductResolverBase.h.

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

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

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

Definition at line 150 of file ProductResolverBase.h.

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

Referenced by write().

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

Definition at line 104 of file ProductResolverBase.h.

References productProvenancePtr_().

104 { 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 31 of file ProductResolverBase.cc.

References branchDescription().

Referenced by setProcessHistory().

31  {
32  return TypeID(branchDescription().wrappedTypeID());
33  }
BranchDescription const & branchDescription() const
bool edm::ProductResolverBase::productUnavailable ( ) const
inline

Definition at line 86 of file ProductResolverBase.h.

References productUnavailable_().

86 {return productUnavailable_();}
virtual bool productUnavailable_() const =0
virtual bool edm::ProductResolverBase::productUnavailable_ ( ) const
privatepure virtual
bool edm::ProductResolverBase::productWasDeleted ( ) const
inline

Definition at line 99 of file ProductResolverBase.h.

References productWasDeleted_().

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

99 {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 101 of file ProductResolverBase.h.

References productWasFetchedAndIsValid_().

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

101 { return productWasFetchedAndIsValid_(iSkipCurrentProcess); }
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 19 of file ProductResolverBase.cc.

References branchDescription(), edm::es::produced, and productResolved().

Referenced by productResolved().

19  {
20  // If this product is from a the current process,
21  // the provenance is available if and only if a product has been put.
22  if(branchDescription().produced()) {
23  return productResolved();
24  }
25  // If this product is from a prior process, the provenance is available,
26  // although the per event part may have been dropped.
27  return true;
28  }
BranchDescription const & branchDescription() const
const eventsetup::produce::Produce produced
Definition: ESProducts.cc:20
void edm::ProductResolverBase::putOrMergeProduct ( std::unique_ptr< WrapperBase edp) const
inline
virtual void edm::ProductResolverBase::putOrMergeProduct_ ( std::unique_ptr< WrapperBase edp) const
privatepure virtual
void edm::ProductResolverBase::putProduct ( std::unique_ptr< WrapperBase edp) const
inline

Definition at line 153 of file ProductResolverBase.h.

References eostools::move(), and putProduct_().

Referenced by edm::InputProductResolver::prefetchAsync_(), edm::DataManagingProductResolver::putOrMergeProduct_(), and edm::InputProductResolver::resolveProduct_().

153  {
154  putProduct_(std::move(edp));
155  }
virtual void putProduct_(std::unique_ptr< WrapperBase > edp) const =0
def move(src, dest)
Definition: eostools.py:510
virtual void edm::ProductResolverBase::putProduct_ ( std::unique_ptr< WrapperBase edp) const
privatepure virtual
void edm::ProductResolverBase::resetBranchDescription ( std::shared_ptr< BranchDescription const >  bd)
inline

Definition at line 113 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::resetFailedFromThisProcess ( )
virtual
void edm::ProductResolverBase::resetProductData ( )
inline

Definition at line 77 of file ProductResolverBase.h.

References resetFailedFromThisProcess(), and resetProductData_().

77 { 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 121 of file ProductResolverBase.h.

References resolvedModuleLabel_().

121 {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 57 of file ProductResolverBase.h.

References resolveProduct_().

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

60  {
61  return resolveProduct_( principal, skipCurrentProcess, sra, mcc);
62  }
def principal(options)
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) const
inline

Definition at line 74 of file ProductResolverBase.h.

References retrieveAndMerge_().

74  {
76  }
def principal(options)
virtual void retrieveAndMerge_(Principal const &principal) const
void edm::ProductResolverBase::retrieveAndMerge_ ( Principal const &  principal) const
privatevirtual
void edm::ProductResolverBase::setProcessHistory ( ProcessHistory const &  ph)
inline

Definition at line 139 of file ProductResolverBase.h.

References productType(), setProcessHistory_(), and write().

139 { setProcessHistory_(ph); }
virtual void setProcessHistory_(ProcessHistory const &ph)=0
virtual void edm::ProductResolverBase::setProcessHistory_ ( ProcessHistory const &  ph)
privatepure virtual
void edm::ProductResolverBase::setProvenance ( ProductProvenanceRetriever const *  provRetriever,
ProcessHistory const &  ph,
ProductID const &  pid 
)
inline

Definition at line 136 of file ProductResolverBase.h.

References setProvenance_().

136 { setProvenance_(provRetriever, ph, pid); }
virtual void setProvenance_(ProductProvenanceRetriever const *provRetriever, ProcessHistory const &ph, ProductID const &pid)=0
virtual void edm::ProductResolverBase::setProvenance_ ( ProductProvenanceRetriever const *  provRetriever,
ProcessHistory const &  ph,
ProductID const &  pid 
)
privatepure virtual
void edm::ProductResolverBase::setupUnscheduled ( UnscheduledConfigurator const &  )
virtual
bool edm::ProductResolverBase::singleProduct ( ) const
inline

Definition at line 110 of file ProductResolverBase.h.

References singleProduct_().

110 {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 133 of file ProductResolverBase.h.

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

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

Definition at line 81 of file ProductResolverBase.h.

References resetProductData_().

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

Definition at line 96 of file ProductResolverBase.h.

References unscheduledWasNotRun_().

96 {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 46 of file ProductResolverBase.cc.

References productID(), and AlCaHLTBitMon_QueryRunRegistry::string.

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

46  {
47  // This is grossly inadequate. It is also not critical for the
48  // first pass.
49  os << std::string("ProductResolver for product with ID: ")
50  << productID();
51  }
ProductID const & productID() const