Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2025-01-31 02:19:23

0001 #ifndef FWCore_Framework_DroppedDataProductResolver_h
0002 #define FWCore_Framework_DroppedDataProductResolver_h
0003 
0004 /*----------------------------------------------------------------------
0005 
0006 DroppedDataProductResolver: Handles case of a DataProduct which was dropped on output
0007 
0008 ----------------------------------------------------------------------*/
0009 
0010 #include "FWCore/Framework/interface/ProductResolverBase.h"
0011 
0012 namespace edm {
0013   class DroppedDataProductResolver : public ProductResolverBase {
0014   public:
0015     DroppedDataProductResolver(std::shared_ptr<ProductDescription const> bd)
0016         : ProductResolverBase(), m_provenance(std::move(bd), {}) {}
0017 
0018     void connectTo(ProductResolverBase const&, Principal const*) final {}
0019 
0020   private:
0021     Resolution resolveProduct_(Principal const& principal,
0022                                bool skipCurrentProcess,
0023                                SharedResourcesAcquirer* sra,
0024                                ModuleCallingContext const* mcc) const final;
0025     void prefetchAsync_(WaitingTaskHolder waitTask,
0026                         Principal const& principal,
0027                         bool skipCurrentProcess,
0028                         ServiceToken const& token,
0029                         SharedResourcesAcquirer* sra,
0030                         ModuleCallingContext const* mcc) const noexcept final;
0031 
0032     void retrieveAndMerge_(Principal const& principal,
0033                            MergeableRunProductMetadata const* mergeableRunProductMetadata) const final;
0034     bool productUnavailable_() const final { return true; }
0035     bool productResolved_() const final { return true; }
0036     bool productWasDeleted_() const final { return false; }
0037     bool productWasFetchedAndIsValid_(bool iSkipCurrentProcess) const final { return false; }
0038     bool unscheduledWasNotRun_() const final { return false; }
0039     void resetProductData_(bool deleteEarly) final {}
0040     ProductDescription const& productDescription_() const final { return m_provenance.productDescription(); }
0041     void resetProductDescription_(std::shared_ptr<ProductDescription const> bd) final {
0042       m_provenance.setProductDescription(bd);
0043     }
0044     Provenance const* provenance_() const final { return &m_provenance; }
0045 
0046     std::string const& resolvedModuleLabel_() const final { return moduleLabel(); }
0047     void setProductProvenanceRetriever_(ProductProvenanceRetriever const* provRetriever) final;
0048     void setProductID_(ProductID const& pid) final { m_provenance.setProductID(pid); }
0049     ProductProvenance const* productProvenancePtr_() const final { return m_provenance.productProvenance(); }
0050     bool singleProduct_() const final { return true; }
0051 
0052     Provenance m_provenance;
0053   };
0054 }  // namespace edm
0055 
0056 #endif