CMS 3D CMS Logo

List of all members | Public Member Functions | Protected Member Functions | Private Member Functions
edm::ProducedProductResolver Class Reference

#include <ProductResolvers.h>

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

Public Member Functions

 ProducedProductResolver (std::shared_ptr< BranchDescription const > bd, ProductStatus iDefaultStatus)
 
virtual void resetFailedFromThisProcess () override
 
- Public Member Functions inherited from edm::DataManagingProductResolver
virtual void connectTo (ProductResolverBase const &, Principal const *) override final
 
 DataManagingProductResolver (std::shared_ptr< BranchDescription const > bd, ProductStatus iDefaultStatus)
 
virtual void resetProductData_ (bool deleteEarly) override
 
void resetStatus ()
 
template<bool callResolver, typename FUNC >
ProductResolverBase::Resolution resolveProductImpl (FUNC resolver) const
 
- 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, 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)
 
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 ()
 

Protected Member Functions

virtual void putProduct_ (std::unique_ptr< WrapperBase > edp) const override
 
- Protected Member Functions inherited from edm::DataManagingProductResolver
ProductStatus defaultStatus () const
 
template<bool callResolver, typename FUNC >
Resolution resolveProductImpl (FUNC resolver) const
 
void setFailedStatus () const
 
void setProduct (std::unique_ptr< WrapperBase > edp) const
 
ProductStatus status () const
 

Private Member Functions

virtual bool isFromCurrentProcess () const override final
 

Additional Inherited Members

- Public Types inherited from edm::DataManagingProductResolver
enum  ProductStatus {
  ProductStatus::ProductSet, ProductStatus::NotPut, ProductStatus::ResolveFailed, ProductStatus::ResolveNotRun,
  ProductStatus::ProductDeleted
}
 

Detailed Description

Definition at line 133 of file ProductResolvers.h.

Constructor & Destructor Documentation

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

Definition at line 135 of file ProductResolvers.h.

References edm::DataManagingProductResolver::isFromCurrentProcess(), edm::ProductResolverBase::putProduct_(), and edm::ProductResolverBase::resetFailedFromThisProcess().

135 : DataManagingProductResolver(bd, iDefaultStatus) {assert(bd->produced());}
DataManagingProductResolver(std::shared_ptr< BranchDescription const > bd, ProductStatus iDefaultStatus)

Member Function Documentation

bool edm::ProducedProductResolver::isFromCurrentProcess ( ) const
finaloverrideprivatevirtual

Implements edm::DataManagingProductResolver.

Definition at line 428 of file ProductResolvers.cc.

428  {
429  return true;
430  }
void edm::ProducedProductResolver::putProduct_ ( std::unique_ptr< WrapperBase edp) const
overrideprotectedvirtual

Implements edm::ProductResolverBase.

Reimplemented in edm::PuttableProductResolver.

Definition at line 410 of file ProductResolvers.cc.

References edm::ProductResolverBase::branchDescription(), edm::BranchDescription::branchName(), edm::DataManagingProductResolver::defaultStatus(), Exception, edm::errors::InsertFailure, eostools::move(), edm::DataManagingProductResolver::setProduct(), and edm::DataManagingProductResolver::status().

Referenced by edm::PuttableProductResolver::putProduct_().

410  {
411  if(status() != defaultStatus()) {
413  << "Attempt to insert more than one product on branch " << branchDescription().branchName() << "\n";
414  }
415 
416  setProduct(std::move(edp)); // ProductResolver takes ownership
417  }
std::string const & branchName() const
ProductStatus status() const
void setProduct(std::unique_ptr< WrapperBase > edp) const
ProductStatus defaultStatus() const
BranchDescription const & branchDescription() const
def move(src, dest)
Definition: eostools.py:510
void edm::ProducedProductResolver::resetFailedFromThisProcess ( )
overridevirtual