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
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 }
0055
0056 #endif