1 #ifndef art_Framework_Principal_Group_h 2 #define art_Framework_Principal_Group_h 38 std::unique_ptr<RangeSet>&&,
40 std::unique_ptr<EDProduct>&& edp =
nullptr);
70 std::unique_ptr<EDProduct>&&,
71 std::unique_ptr<RangeSet>&&);
87 mutable std::recursive_mutex
mutex_{};
bool tryToResolveProduct(TypeID const &)
ProductID productID() const
bool productAvailable() const
std::optional< GroupQueryResult > resolve_unique_product(std::vector< cet::exempt_ptr< art::Group >> const &product_groups, art::WrappedTypeID const &wrapped)
std::atomic< ProductProvenance const * > productProvenance_
std::atomic< RangeSet * > rangeSet_
std::atomic< EDProduct * > baseProduct_
void setProductAndProvenance(std::unique_ptr< ProductProvenance const > &&, std::unique_ptr< EDProduct > &&, std::unique_ptr< RangeSet > &&)
cet::exempt_ptr< ProductProvenance const > productProvenance() const
BranchDescription const & productDescription() const noexcept
std::atomic< EDProduct * > product_
EDProduct const * getIt_() const override
std::recursive_mutex mutex_
EDProduct const * anyProduct() const
cet::exempt_ptr< DelayedReader const > const delayedReader_
std::atomic< EDProduct * > partnerProduct_
BranchDescription const & branchDescription_
bool resolveProductIfAvailable(TypeID wanted_wrapper=TypeID{}) const
void removeCachedProduct()
std::atomic< EDProduct * > partnerBaseProduct_
EDProduct const * uniqueProduct() const
void setProductProvenance(std::unique_ptr< ProductProvenance const > &&)
RangeSet const & rangeOfValidity() const
Group(DelayedReader *, BranchDescription const &, std::unique_ptr< RangeSet > &&, grouptype const gt, std::unique_ptr< EDProduct > &&edp=nullptr)
std::vector< GroupQueryResult > resolve_products(std::vector< cet::exempt_ptr< art::Group >> const &groups, art::TypeID const &wrapped_type)