Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
art::Group Class Reference

#include "/cvmfs/nova.opensciencegrid.org/externals/art/v2_13_00/source/art/Framework/Principal/Group.h"

Inheritance diagram for art::Group:
art::EDProductGetter art::AssnsGroup art::AssnsGroupWithData

Public Member Functions

 Group ()=default
 
bool productUnavailable () const
 
bool isReady () const override
 
EDProduct const * getIt () const override
 
EDProduct const * anyProduct () const override
 
EDProduct const * uniqueProduct () const override
 
EDProduct const * uniqueProduct (TypeID const &) const override
 
cet::exempt_ptr< ProductProvenance const > productProvenancePtr () const
 
BranchDescription const & productDescription () const
 
std::string const & moduleLabel () const
 
std::string const & productInstanceName () const
 
std::string const & processName () const
 
ProductStatus status () const
 
void setResolvers (BranchMapper const &bm, DelayedReader const &dr)
 
bool resolveProduct (TypeID const &) const override
 
bool resolveProductIfAvailable (TypeID const &) const override
 
void write (std::ostream &os) const
 
ProductID const & productID () const
 
TypeID const & producedWrapperType () const
 
virtual void removeCachedProduct () const
 
RangeSet const & rangeOfValidity () const
 

Protected Member Functions

 Group (BranchDescription const &pd, ProductID const &pid, RangeSet &&rs, art::TypeID const &wrapper_type, std::unique_ptr< EDProduct > &&edp=nullptr, cet::exempt_ptr< Worker > productProducer=cet::exempt_ptr< Worker >{})
 
 Group (BranchDescription const &pd, ProductID const &pid, RangeSet &&rs, cet::exempt_ptr< Worker > productProducer, art::TypeID const &wrapper_type)
 
 Group (BranchDescription const &pd, ProductID const &pid, RangeSet &&rs, std::unique_ptr< EDProduct > &&edp, art::TypeID const &wrapper_type)
 
std::unique_ptr< EDProductobtainDesiredProduct (TypeID const &) const
 
void setProduct (std::unique_ptr< EDProduct > &&prod) const
 
void throwResolveLogicError (TypeID const &wanted_wrapper_type) const
 

Private Member Functions

bool dropped () const
 

Private Attributes

TypeID wrapperType_ {}
 
cet::exempt_ptr< BranchMapper const > ppResolver_ {nullptr}
 
cet::exempt_ptr< DelayedReader const > productResolver_ {nullptr}
 
std::unique_ptr< EDProductproduct_ {nullptr}
 
cet::exempt_ptr< BranchDescription const > branchDescription_ {nullptr}
 
ProductID pid_ {}
 
cet::exempt_ptr< WorkerproductProducer_ {nullptr}
 
RangeSet rangeOfValidity_ {RangeSet::invalid()}
 

Friends

template<typename... ARGS>
std::unique_ptr< Groupgfactory::detail::make_group (BranchDescription const &, ARGS &&...args)
 

Detailed Description

Definition at line 34 of file Group.h.

Constructor & Destructor Documentation

art::Group::Group ( )
default
art::Group::Group ( BranchDescription const &  pd,
ProductID const &  pid,
RangeSet &&  rs,
art::TypeID const &  wrapper_type,
std::unique_ptr< EDProduct > &&  edp = nullptr,
cet::exempt_ptr< Worker productProducer = cet::exempt_ptr<Worker>{} 
)
inlineprotected

Definition at line 49 of file Group.h.

References branchDescription_, pid_, product_, productProducer_, rangeOfValidity_, and wrapperType_.

54  {})
55  : wrapperType_{wrapper_type}
56  , product_{std::move(edp)}
57  , branchDescription_{&pd}
58  , pid_{pid}
59  , productProducer_{productProducer}
60  , rangeOfValidity_{std::move(rs)}
61  {}
cet::exempt_ptr< BranchDescription const > branchDescription_
Definition: Group.h:191
ProductID pid_
Definition: Group.h:192
RangeSet rangeOfValidity_
Definition: Group.h:194
std::unique_ptr< EDProduct > product_
Definition: Group.h:190
TypeID wrapperType_
Definition: Group.h:187
cet::exempt_ptr< Worker > productProducer_
Definition: Group.h:193
art::Group::Group ( BranchDescription const &  pd,
ProductID const &  pid,
RangeSet &&  rs,
cet::exempt_ptr< Worker productProducer,
art::TypeID const &  wrapper_type 
)
inlineprotected

Definition at line 63 of file Group.h.

References BlessedPlots::pid.

68  : Group{pd, pid, std::move(rs), wrapper_type, nullptr, productProducer}
69  {}
std::map< TString, std::map< TString, SystShifts > > Group
Definition: syst_header.h:40
art::Group::Group ( BranchDescription const &  pd,
ProductID const &  pid,
RangeSet &&  rs,
std::unique_ptr< EDProduct > &&  edp,
art::TypeID const &  wrapper_type 
)
inlineprotected

Definition at line 71 of file Group.h.

References BlessedPlots::pid, and productUnavailable().

76  : Group{pd, pid, std::move(rs), wrapper_type, std::move(edp)}
77  {}
std::map< TString, std::map< TString, SystShifts > > Group
Definition: syst_header.h:40

Member Function Documentation

EDProduct const* art::Group::anyProduct ( ) const
inlineoverridevirtual

Implements art::EDProductGetter.

Definition at line 97 of file Group.h.

References product_.

Referenced by art::detail::PrincipalProcessor< DETAIL >::operator()().

98  {
99  return product_.get();
100  }
std::unique_ptr< EDProduct > product_
Definition: Group.h:190
bool art::Group::dropped ( ) const
private

Referenced by rangeOfValidity().

EDProduct const* art::Group::getIt ( ) const
inlineoverridevirtual

Implements art::EDProductGetter.

Definition at line 90 of file Group.h.

References producedWrapperType(), product_, and resolveProductIfAvailable().

91  {
93  return product_.get();
94  }
TypeID const & producedWrapperType() const
Definition: Group.h:162
bool resolveProductIfAvailable(TypeID const &) const override
std::unique_ptr< EDProduct > product_
Definition: Group.h:190
bool art::Group::isReady ( ) const
inlineoverridevirtual

Implements art::EDProductGetter.

Definition at line 84 of file Group.h.

85  {
86  return true;
87  }
std::string const& art::Group::moduleLabel ( ) const
inline

Definition at line 123 of file Group.h.

References branchDescription_, and string.

124  {
125  return branchDescription_->moduleLabel();
126  }
cet::exempt_ptr< BranchDescription const > branchDescription_
Definition: Group.h:191
std::unique_ptr<EDProduct> art::Group::obtainDesiredProduct ( TypeID const &  ) const
protected

Referenced by rangeOfValidity().

std::string const& art::Group::processName ( ) const
inline

Definition at line 135 of file Group.h.

References branchDescription_, and status().

136  {
137  return branchDescription_->processName();
138  }
cet::exempt_ptr< BranchDescription const > branchDescription_
Definition: Group.h:191
TypeID const& art::Group::producedWrapperType ( ) const
inline

Definition at line 162 of file Group.h.

References removeCachedProduct(), and wrapperType_.

Referenced by getIt(), and art::detail::PrincipalProcessor< DETAIL >::operator()().

163  {
164  return wrapperType_;
165  }
TypeID wrapperType_
Definition: Group.h:187
BranchDescription const& art::Group::productDescription ( ) const
inline

Definition at line 117 of file Group.h.

References branchDescription_, and string.

118  {
119  return *branchDescription_;
120  }
cet::exempt_ptr< BranchDescription const > branchDescription_
Definition: Group.h:191
ProductID const& art::Group::productID ( ) const
inline

Definition at line 156 of file Group.h.

References pid_.

157  {
158  return pid_;
159  };
ProductID pid_
Definition: Group.h:192
std::string const& art::Group::productInstanceName ( ) const
inline

Definition at line 129 of file Group.h.

References branchDescription_, and string.

130  {
131  return branchDescription_->productInstanceName();
132  }
cet::exempt_ptr< BranchDescription const > branchDescription_
Definition: Group.h:191
cet::exempt_ptr<ProductProvenance const> art::Group::productProvenancePtr ( ) const
bool art::Group::productUnavailable ( ) const

Referenced by Group().

RangeSet const& art::Group::rangeOfValidity ( ) const
inline

Definition at line 170 of file Group.h.

References dropped(), obtainDesiredProduct(), stan::math::prod(), rangeOfValidity_, setProduct(), and throwResolveLogicError().

171  {
172  return rangeOfValidity_;
173  }
RangeSet rangeOfValidity_
Definition: Group.h:194
virtual void art::Group::removeCachedProduct ( ) const
virtual

Reimplemented in art::AssnsGroupWithData, and art::AssnsGroup.

Referenced by producedWrapperType().

bool art::Group::resolveProduct ( TypeID const &  ) const
overridevirtual

Implements art::EDProductGetter.

Referenced by setResolvers().

bool art::Group::resolveProductIfAvailable ( TypeID const &  ) const
overridevirtual
void art::Group::setProduct ( std::unique_ptr< EDProduct > &&  prod) const
protected

Referenced by rangeOfValidity().

void art::Group::setResolvers ( BranchMapper const &  bm,
DelayedReader const &  dr 
)
inline

Definition at line 143 of file Group.h.

References ppResolver_, productResolver_, resolveProduct(), resolveProductIfAvailable(), and write().

144  {
145  ppResolver_.reset(&bm);
146  productResolver_.reset(&dr);
147  }
cet::exempt_ptr< BranchMapper const > ppResolver_
Definition: Group.h:188
cet::exempt_ptr< DelayedReader const > productResolver_
Definition: Group.h:189
ProductStatus art::Group::status ( ) const

Referenced by processName().

void art::Group::throwResolveLogicError ( TypeID const &  wanted_wrapper_type) const
protected

Referenced by rangeOfValidity().

EDProduct const* art::Group::uniqueProduct ( ) const
inlineoverridevirtual

Implements art::EDProductGetter.

Definition at line 103 of file Group.h.

References product_.

Referenced by art::AssnsGroup::makePartner().

104  {
105  return product_.get();
106  }
std::unique_ptr< EDProduct > product_
Definition: Group.h:190
EDProduct const* art::Group::uniqueProduct ( TypeID const &  ) const
inlineoverridevirtual

Implements art::EDProductGetter.

Definition at line 109 of file Group.h.

References product_, and productProvenancePtr().

110  {
111  return product_.get();
112  }
std::unique_ptr< EDProduct > product_
Definition: Group.h:190
void art::Group::write ( std::ostream &  os) const

Referenced by art::operator<<(), and setResolvers().

Friends And Related Function Documentation

template<typename... ARGS>
std::unique_ptr<Group> gfactory::detail::make_group ( BranchDescription const &  ,
ARGS &&...  args 
)
friend

Member Data Documentation

cet::exempt_ptr<BranchDescription const> art::Group::branchDescription_ {nullptr}
private

Definition at line 191 of file Group.h.

Referenced by Group(), moduleLabel(), processName(), productDescription(), and productInstanceName().

ProductID art::Group::pid_ {}
mutableprivate

Definition at line 192 of file Group.h.

Referenced by Group(), and productID().

cet::exempt_ptr<BranchMapper const> art::Group::ppResolver_ {nullptr}
private

Definition at line 188 of file Group.h.

Referenced by setResolvers().

std::unique_ptr<EDProduct> art::Group::product_ {nullptr}
mutableprivate

Definition at line 190 of file Group.h.

Referenced by anyProduct(), getIt(), Group(), and uniqueProduct().

cet::exempt_ptr<Worker> art::Group::productProducer_ {nullptr}
private

Definition at line 193 of file Group.h.

Referenced by Group().

cet::exempt_ptr<DelayedReader const> art::Group::productResolver_ {nullptr}
private

Definition at line 189 of file Group.h.

Referenced by setResolvers().

RangeSet art::Group::rangeOfValidity_ {RangeSet::invalid()}
mutableprivate

Definition at line 194 of file Group.h.

Referenced by Group(), and rangeOfValidity().

TypeID art::Group::wrapperType_ {}
private

Definition at line 187 of file Group.h.

Referenced by Group(), and producedWrapperType().


The documentation for this class was generated from the following file: