LArSoft
v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
|
#include "Group.h"
Public Types | |
enum | grouptype { grouptype::normal = 0, grouptype::assns = 1, grouptype::assnsWithData = 2 } |
Public Member Functions | |
~Group () | |
Group (DelayedReader *, BranchDescription const &, std::unique_ptr< RangeSet > &&, grouptype const gt, std::unique_ptr< EDProduct > &&edp=nullptr) | |
EDProduct const * | getIt_ () const override |
EDProduct const * | anyProduct () const |
EDProduct const * | uniqueProduct () const |
EDProduct const * | uniqueProduct (TypeID const &) const |
bool | resolveProductIfAvailable (TypeID wanted_wrapper=TypeID{}) const |
bool | tryToResolveProduct (TypeID const &) |
void | removeCachedProduct () |
BranchDescription const & | productDescription () const noexcept |
ProductID | productID () const |
RangeSet const & | rangeOfValidity () const |
bool | productAvailable () const |
cet::exempt_ptr< ProductProvenance const > | productProvenance () const |
void | setProductProvenance (std::unique_ptr< ProductProvenance const > &&) |
void | setProductAndProvenance (std::unique_ptr< ProductProvenance const > &&, std::unique_ptr< EDProduct > &&, std::unique_ptr< RangeSet > &&) |
EDProduct const * | getIt () const |
Private Attributes | |
BranchDescription const & | branchDescription_ |
cet::exempt_ptr< DelayedReader const > const | delayedReader_ |
std::recursive_mutex | mutex_ {} |
std::atomic< ProductProvenance const * > | productProvenance_ {nullptr} |
std::atomic< EDProduct * > | product_ |
std::atomic< RangeSet * > | rangeSet_ |
grouptype const | grpType_ |
std::atomic< EDProduct * > | partnerProduct_ {nullptr} |
std::atomic< EDProduct * > | baseProduct_ {nullptr} |
std::atomic< EDProduct * > | partnerBaseProduct_ {nullptr} |
|
strong |
art::Group::~Group | ( | ) |
Definition at line 20 of file Group.cc.
art::Group::Group | ( | DelayedReader * | reader, |
BranchDescription const & | bd, | ||
std::unique_ptr< RangeSet > && | rs, | ||
grouptype const | gt, | ||
std::unique_ptr< EDProduct > && | edp = nullptr |
||
) |
Definition at line 30 of file Group.cc.
References delayedReader_, grpType_, product_, and rangeSet_.
EDProduct const * art::Group::anyProduct | ( | ) | const |
Definition at line 54 of file Group.cc.
References assns, baseProduct_, grpType_, mutex_, normal, partnerBaseProduct_, partnerProduct_, and product_.
Referenced by art::detail::PrincipalProcessor< DETAIL >::operator()().
|
inherited |
Definition at line 10 of file EDProductGetter.cc.
References art::EDProductGetter::getIt_().
Referenced by art::RefCore::isAvailable(), and art::ProductPtr< T >::product_().
|
overridevirtual |
Reimplemented from art::EDProductGetter.
Definition at line 43 of file Group.cc.
References grpType_, mutex_, normal, product_, resolveProductIfAvailable(), and uniqueProduct().
bool art::Group::productAvailable | ( | ) | const |
Definition at line 206 of file Group.cc.
References branchDescription_, art::BranchDescription::branchType(), delayedReader_, art::BranchDescription::dropped(), art::productstatus::dummyToPreventDoubleCount(), art::InRun, art::InSubRun, art::errors::LogicError, mutex_, art::productstatus::neverCreated(), art::productstatus::present(), art::BranchDescription::present(), art::BranchDescription::produced(), product_, art::BranchDescription::productID(), productProvenance_, and art::productstatus::uninitialized().
Referenced by resolveProductIfAvailable(), and tryToResolveProduct().
|
noexcept |
ProductID art::Group::productID | ( | ) | const |
Definition at line 132 of file Group.cc.
References branchDescription_, and art::BranchDescription::productID().
cet::exempt_ptr< ProductProvenance const > art::Group::productProvenance | ( | ) | const |
Definition at line 145 of file Group.cc.
References mutex_, and productProvenance_.
Referenced by art::detail::PrincipalProcessor< DETAIL >::operator()().
RangeSet const & art::Group::rangeOfValidity | ( | ) | const |
void art::Group::removeCachedProduct | ( | ) |
Definition at line 178 of file Group.cc.
References assns, baseProduct_, branchDescription_, grpType_, art::RangeSet::invalid(), art::errors::LogicError, mutex_, normal, partnerBaseProduct_, partnerProduct_, art::BranchDescription::produced(), product_, and rangeSet_.
Definition at line 286 of file Group.cc.
References assns, assnsWithData, baseProduct_, branchDescription_, delayedReader_, grpType_, art::LeftRight, art::LeftRightData, mutex_, normal, partnerBaseProduct_, partnerProduct_, art::BranchDescription::produced(), product_, productAvailable(), art::BranchDescription::productID(), rangeSet_, art::RightLeft, art::RightLeftData, and art::TypeID::typeInfo().
Referenced by getIt_(), art::detail::PrincipalProcessor< DETAIL >::operator()(), and tryToResolveProduct().
void art::Group::setProductAndProvenance | ( | std::unique_ptr< ProductProvenance const > && | pp, |
std::unique_ptr< EDProduct > && | edp, | ||
std::unique_ptr< RangeSet > && | rs | ||
) |
Definition at line 164 of file Group.cc.
References mutex_, product_, productProvenance_, and rangeSet_.
void art::Group::setProductProvenance | ( | std::unique_ptr< ProductProvenance const > && | pp | ) |
Definition at line 155 of file Group.cc.
References mutex_, and productProvenance_.
bool art::Group::tryToResolveProduct | ( | TypeID const & | wanted_wrapper | ) |
Definition at line 377 of file Group.cc.
References mutex_, productAvailable(), and resolveProductIfAvailable().
EDProduct const * art::Group::uniqueProduct | ( | ) | const |
Definition at line 78 of file Group.cc.
References grpType_, art::errors::LogicError, mutex_, normal, and product_.
Referenced by getIt_().
Definition at line 91 of file Group.cc.
References assns, baseProduct_, grpType_, art::LeftRight, mutex_, normal, partnerBaseProduct_, partnerProduct_, product_, art::RightLeft, and art::RightLeftData.
|
mutableprivate |
Definition at line 116 of file Group.h.
Referenced by anyProduct(), removeCachedProduct(), resolveProductIfAvailable(), and uniqueProduct().
|
private |
Definition at line 74 of file Group.h.
Referenced by productAvailable(), productDescription(), productID(), removeCachedProduct(), and resolveProductIfAvailable().
|
private |
Definition at line 78 of file Group.h.
Referenced by Group(), productAvailable(), and resolveProductIfAvailable().
|
private |
Definition at line 102 of file Group.h.
Referenced by anyProduct(), getIt_(), Group(), removeCachedProduct(), resolveProductIfAvailable(), and uniqueProduct().
|
mutableprivate |
Definition at line 87 of file Group.h.
Referenced by anyProduct(), getIt_(), productAvailable(), productProvenance(), rangeOfValidity(), removeCachedProduct(), resolveProductIfAvailable(), setProductAndProvenance(), setProductProvenance(), tryToResolveProduct(), and uniqueProduct().
|
mutableprivate |
Definition at line 120 of file Group.h.
Referenced by anyProduct(), removeCachedProduct(), resolveProductIfAvailable(), and uniqueProduct().
|
mutableprivate |
Definition at line 109 of file Group.h.
Referenced by anyProduct(), removeCachedProduct(), resolveProductIfAvailable(), and uniqueProduct().
|
mutableprivate |
Definition at line 96 of file Group.h.
Referenced by anyProduct(), getIt_(), Group(), productAvailable(), removeCachedProduct(), resolveProductIfAvailable(), setProductAndProvenance(), and uniqueProduct().
|
private |
Definition at line 91 of file Group.h.
Referenced by productAvailable(), productProvenance(), setProductAndProvenance(), and setProductProvenance().
|
mutableprivate |
Definition at line 100 of file Group.h.
Referenced by Group(), rangeOfValidity(), removeCachedProduct(), resolveProductIfAvailable(), and setProductAndProvenance().