1 #ifndef DataFormats_Provenance_ProductProvenanceLookup_h 2 #define DataFormats_Provenance_ProductProvenanceLookup_h 25 class ProductRegistry;
46 isParentageSet_{iOther.isParentageSet_.load(std::memory_order_acquire)} {}
48 bool isSet = iOther.isParentageSet_.load(std::memory_order_acquire);
57 isParentageSet_.store(iOther.isParentageSet_.load(std::memory_order_acquire), std::memory_order_release);
94 virtual std::unique_ptr<const std::set<ProductProvenance>>
readProvenance()
const = 0;
ProducedProvenanceInfo & operator=(ProducedProvenanceInfo &&iOther)
ProductProvenance const * productProvenance() const noexcept
ProductProvenanceLookup & operator=(ProductProvenanceLookup const &)=delete
virtual ~ProductProvenanceLookup()
ProductProvenance provenance_
bool isParentageSet() const noexcept
virtual std::unique_ptr< const std::set< ProductProvenance > > readProvenance() const =0
std::atomic< bool > isParentageSet_
ProductProvenance const * branchIDToProvenanceForProducedOnly(BranchID const &bid) const
void threadsafe_set(ParentageID id) const
#define CMS_THREAD_GUARD(_var_)
ProductProvenance const * branchIDToProvenance(BranchID const &bid) const
void update(edm::ProductRegistry const &)
BranchID const & branchID() const
std::atomic< const std::set< ProductProvenance > * > readEntryInfoSet_
virtual const ProductProvenanceLookup * nextRetriever() const =0
ProducedProvenanceInfo(ProducedProvenanceInfo &&iOther)
ProducedProvenanceInfo(BranchID iBid)
edm::propagate_const< ProductProvenanceLookup const * > parentProcessRetriever_
BranchID branchID() const noexcept
ProductProvenanceLookup()
std::vector< ProducedProvenanceInfo > entryInfoSet_
ProducedProvenanceInfo & operator=(ProducedProvenanceInfo const &iOther)
ProducedProvenanceInfo(ProducedProvenanceInfo const &iOther)
void insertIntoSet(ProductProvenance provenanceProduct) const
void setupEntryInfoSet(edm::ProductRegistry const &)