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

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

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

Public Member Functions

 AssnsGroup ()=default
 
bool isReady () const override
 
EDProduct const * getIt () const override
 
EDProduct const * anyProduct () const override
 
EDProduct const * uniqueProduct () const override
 
EDProduct const * uniqueProduct (TypeID const &wanted_wrapper_type) const override
 
bool resolveProductIfAvailable (TypeID const &) const override
 
void removeCachedProduct () const override
 
bool productUnavailable () const
 
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
 
void write (std::ostream &os) const
 
ProductID const & productID () const
 
TypeID const & producedWrapperType () const
 
RangeSet const & rangeOfValidity () const
 

Protected Member Functions

 AssnsGroup (BranchDescription const &pd, ProductID const &pid, RangeSet &&rs, TypeID const &primary_wrapper_type, TypeID const &partner_wrapper_type, std::unique_ptr< EDProduct > &&edp=nullptr, cet::exempt_ptr< Worker > productProducer=cet::exempt_ptr< Worker >())
 
 AssnsGroup (BranchDescription const &pd, ProductID const &pid, RangeSet &&rs, std::unique_ptr< EDProduct > &&edp, TypeID const &primary_wrapper_type, TypeID const &partner_wrapper_type)
 
 AssnsGroup (BranchDescription const &pd, ProductID const &pid, RangeSet &&rs, cet::exempt_ptr< Worker > productProducer, TypeID const &primary_wrapper_type, TypeID const &partner_wrapper_type)
 
TypeID const & partnerWrapperType () const
 
bool makePartner (TypeID const &wanted_wrapper_type, std::unique_ptr< EDProduct > &partner) const
 
std::unique_ptr< EDProductobtainDesiredProduct (TypeID const &) const
 
void setProduct (std::unique_ptr< EDProduct > &&prod) const
 
void throwResolveLogicError (TypeID const &wanted_wrapper_type) const
 

Private Attributes

TypeID partnerWrapperType_
 
std::unique_ptr< EDProductpartnerProduct_
 

Friends

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

Detailed Description

Definition at line 16 of file AssnsGroup.h.

Constructor & Destructor Documentation

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

Definition at line 28 of file AssnsGroup.h.

References partnerProduct_, partnerWrapperType_, and BlessedPlots::pid.

36  : Group{pd,
37  pid,
38  std::move(rs),
39  primary_wrapper_type,
40  std::move(edp),
41  productProducer}
42  , partnerWrapperType_{partner_wrapper_type}
43  , partnerProduct_{}
44  {}
TypeID partnerWrapperType_
Definition: AssnsGroup.h:116
std::unique_ptr< EDProduct > partnerProduct_
Definition: AssnsGroup.h:117
std::map< TString, std::map< TString, SystShifts > > Group
Definition: syst_header.h:40
art::AssnsGroup::AssnsGroup ( BranchDescription const &  pd,
ProductID const &  pid,
RangeSet &&  rs,
std::unique_ptr< EDProduct > &&  edp,
TypeID const &  primary_wrapper_type,
TypeID const &  partner_wrapper_type 
)
inlineprotected

Definition at line 46 of file AssnsGroup.h.

References BlessedPlots::pid.

52  : AssnsGroup{pd,
53  pid,
54  std::move(rs),
55  primary_wrapper_type,
56  partner_wrapper_type,
57  std::move(edp)}
58  {}
AssnsGroup()=default
art::AssnsGroup::AssnsGroup ( BranchDescription const &  pd,
ProductID const &  pid,
RangeSet &&  rs,
cet::exempt_ptr< Worker productProducer,
TypeID const &  primary_wrapper_type,
TypeID const &  partner_wrapper_type 
)
inlineprotected

Definition at line 60 of file AssnsGroup.h.

References BlessedPlots::pid.

66  : AssnsGroup{pd,
67  pid,
68  std::move(rs),
69  primary_wrapper_type,
70  partner_wrapper_type,
71  nullptr,
72  productProducer}
73  {}
AssnsGroup()=default

Member Function Documentation

EDProduct const* art::AssnsGroup::anyProduct ( ) const
overridevirtual

Implements art::EDProductGetter.

Reimplemented in art::AssnsGroupWithData.

Referenced by isReady().

EDProduct const* art::AssnsGroup::getIt ( ) const
overridevirtual

Implements art::EDProductGetter.

Referenced by isReady().

bool art::AssnsGroup::isReady ( ) const
inlineoverridevirtual

Implements art::EDProductGetter.

Definition at line 77 of file AssnsGroup.h.

References anyProduct(), getIt(), removeCachedProduct(), resolveProductIfAvailable(), and uniqueProduct().

78  {
79  return true;
80  }
bool art::AssnsGroup::makePartner ( TypeID const &  wanted_wrapper_type,
std::unique_ptr< EDProduct > &  partner 
) const
inlineprotected

Definition at line 103 of file AssnsGroup.h.

References art::EDProduct::makePartner(), fillBadChanDBTables::result, art::TypeID::typeInfo(), and art::Group::uniqueProduct().

105  {
106  bool result;
107  auto edp =
108  Group::uniqueProduct()->makePartner(wanted_wrapper_type.typeInfo());
109  if ((result = edp.get())) {
110  partner = std::move(edp);
111  }
112  return result;
113  }
std::unique_ptr< EDProduct > makePartner(std::type_info const &wanted_type) const
Definition: EDProduct.h:63
EDProduct const * uniqueProduct() const override
Definition: Group.h:103
std::string const& art::Group::moduleLabel ( ) const
inlineinherited

Definition at line 123 of file Group.h.

References art::Group::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
protectedinherited
TypeID const& art::AssnsGroup::partnerWrapperType ( ) const
inlineprotected

Definition at line 97 of file AssnsGroup.h.

References partnerWrapperType_.

98  {
99  return partnerWrapperType_;
100  }
TypeID partnerWrapperType_
Definition: AssnsGroup.h:116
std::string const& art::Group::processName ( ) const
inlineinherited

Definition at line 135 of file Group.h.

References art::Group::branchDescription_, and art::Group::status().

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

Definition at line 162 of file Group.h.

References art::Group::removeCachedProduct(), and art::Group::wrapperType_.

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

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

Definition at line 117 of file Group.h.

References art::Group::branchDescription_, and string.

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

Definition at line 156 of file Group.h.

References art::Group::pid_.

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

Definition at line 129 of file Group.h.

References art::Group::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
inherited
bool art::Group::productUnavailable ( ) const
inherited

Referenced by art::Group::Group().

RangeSet const& art::Group::rangeOfValidity ( ) const
inlineinherited
void art::AssnsGroup::removeCachedProduct ( ) const
overridevirtual

Reimplemented from art::Group.

Reimplemented in art::AssnsGroupWithData.

Referenced by isReady().

bool art::Group::resolveProduct ( TypeID const &  ) const
overridevirtualinherited
bool art::AssnsGroup::resolveProductIfAvailable ( TypeID const &  ) const
overridevirtual

Implements art::EDProductGetter.

Reimplemented in art::AssnsGroupWithData.

Referenced by isReady().

void art::Group::setProduct ( std::unique_ptr< EDProduct > &&  prod) const
protectedinherited
void art::Group::setResolvers ( BranchMapper const &  bm,
DelayedReader const &  dr 
)
inlineinherited

Definition at line 143 of file Group.h.

References art::Group::ppResolver_, art::Group::productResolver_, art::Group::resolveProduct(), art::Group::resolveProductIfAvailable(), and art::Group::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
inherited

Referenced by art::Group::processName().

void art::Group::throwResolveLogicError ( TypeID const &  wanted_wrapper_type) const
protectedinherited
EDProduct const* art::AssnsGroup::uniqueProduct ( ) const
overridevirtual
EDProduct const* art::AssnsGroup::uniqueProduct ( TypeID const &  wanted_wrapper_type) const
overridevirtual

Implements art::EDProductGetter.

Reimplemented in art::AssnsGroupWithData.

void art::Group::write ( std::ostream &  os) const
inherited

Friends And Related Function Documentation

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

Member Data Documentation

std::unique_ptr<EDProduct> art::AssnsGroup::partnerProduct_
mutableprivate

Definition at line 117 of file AssnsGroup.h.

Referenced by AssnsGroup().

TypeID art::AssnsGroup::partnerWrapperType_
private

Definition at line 116 of file AssnsGroup.h.

Referenced by AssnsGroup(), and partnerWrapperType().


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