CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Member Functions | Private Attributes
edm::InputGroup Class Reference

#include <Group.h>

Inheritance diagram for edm::InputGroup:
edm::Group

Public Member Functions

 InputGroup (boost::shared_ptr< ConstBranchDescription > bd)
 
bool productIsUnavailable () const
 
void setProduct (std::auto_ptr< EDProduct > prod) const
 
void setProductUnavailable () const
 
virtual ~InputGroup ()
 
- Public Member Functions inherited from edm::Group
ConstBranchDescription const & branchDescription () const
 
void checkType (EDProduct const &prod) const
 
 Group ()
 
void mergeProduct (std::auto_ptr< EDProduct > edp, boost::shared_ptr< ProductProvenance > productProvenance)
 
void mergeProduct (std::auto_ptr< EDProduct > edp, std::auto_ptr< ProductProvenance > productProvenance)
 
void mergeProduct (std::auto_ptr< EDProduct > edp) const
 
void mergeTheProduct (std::auto_ptr< EDProduct > edp) const
 
std::string const & moduleLabel () const
 
bool onDemand () const
 
std::string const & processName () const
 
boost::shared_ptr< EDProductproduct () const
 
ProductID const & productID () const
 
std::string const & productInstanceName () const
 
boost::shared_ptr
< ProductProvenance
productProvenancePtr () const
 
Reflex::Type productType () const
 
bool productUnavailable () const
 
Provenanceprovenance () const
 
bool provenanceAvailable () const
 
bool putOrMergeProduct () const
 
void putProduct (std::auto_ptr< EDProduct > edp, boost::shared_ptr< ProductProvenance > productProvenance)
 
void putProduct (std::auto_ptr< EDProduct > edp, std::auto_ptr< ProductProvenance > productProvenance)
 
void putProduct (std::auto_ptr< EDProduct > edp) const
 
void resetBranchDescription (boost::shared_ptr< ConstBranchDescription > bd)
 
void resetGroupData ()
 
void setProductProvenance (boost::shared_ptr< ProductProvenance > prov) const
 
void setProvenance (boost::shared_ptr< BranchMapper > mapper, ProductID const &pid)
 
void setProvenance (boost::shared_ptr< BranchMapper > mapper)
 
void swap (Group &rhs)
 
void write (std::ostream &os) const
 
virtual ~Group ()
 

Private Member Functions

virtual void checkType_ (EDProduct const &prod) const
 
virtual GroupData const & groupData () const
 
virtual GroupDatagroupData ()
 
virtual void mergeProduct_ (std::auto_ptr< EDProduct > edp, boost::shared_ptr< ProductProvenance > productProvenance)
 
virtual void mergeProduct_ (std::auto_ptr< EDProduct > edp) const
 
virtual bool onDemand_ () const
 
virtual bool productUnavailable_ () const
 
virtual bool putOrMergeProduct_ () const
 
virtual void putProduct_ (std::auto_ptr< EDProduct > edp, boost::shared_ptr< ProductProvenance > productProvenance)
 
virtual void putProduct_ (std::auto_ptr< EDProduct > edp) const
 
virtual void resetStatus ()
 
virtual void swap_ (Group &rhs)
 

Private Attributes

GroupData groupData_
 
bool productIsUnavailable_
 

Detailed Description

Definition at line 187 of file Group.h.

Constructor & Destructor Documentation

edm::InputGroup::InputGroup ( boost::shared_ptr< ConstBranchDescription bd)
inlineexplicit

Definition at line 189 of file Group.h.

189  :
190  Group(), groupData_(bd), productIsUnavailable_(false) {}
Group()
Definition: Group.cc:15
GroupData groupData_
Definition: Group.h:217
bool productIsUnavailable_
Definition: Group.h:218
edm::InputGroup::~InputGroup ( )
virtual

Definition at line 18 of file Group.cc.

18 {}

Member Function Documentation

virtual void edm::InputGroup::checkType_ ( EDProduct const &  prod) const
inlineprivatevirtual

Implements edm::Group.

Definition at line 211 of file Group.h.

211 {}
virtual GroupData const& edm::InputGroup::groupData ( ) const
inlineprivatevirtual

Implements edm::Group.

Definition at line 215 of file Group.h.

References groupData_.

Referenced by setProduct().

215 {return groupData_;}
GroupData groupData_
Definition: Group.h:217
virtual GroupData& edm::InputGroup::groupData ( )
inlineprivatevirtual

Implements edm::Group.

Definition at line 216 of file Group.h.

References groupData_.

216 {return groupData_;}
GroupData groupData_
Definition: Group.h:217
void edm::InputGroup::mergeProduct_ ( std::auto_ptr< EDProduct edp,
boost::shared_ptr< ProductProvenance productProvenance 
)
privatevirtual

Implements edm::Group.

Definition at line 81 of file Group.cc.

83  {
84  assert(0);
85  }
void edm::InputGroup::mergeProduct_ ( std::auto_ptr< EDProduct edp) const
privatevirtual

Implements edm::Group.

Definition at line 88 of file Group.cc.

References edm::Group::mergeTheProduct().

88  {
89  mergeTheProduct(edp);
90  }
void mergeTheProduct(std::auto_ptr< EDProduct > edp) const
Definition: Group.cc:104
virtual bool edm::InputGroup::onDemand_ ( ) const
inlineprivatevirtual

Implements edm::Group.

Definition at line 213 of file Group.h.

213 {return false;}
bool edm::InputGroup::productIsUnavailable ( ) const
inline

Definition at line 197 of file Group.h.

References productIsUnavailable_.

Referenced by productUnavailable_().

197 {return productIsUnavailable_;}
bool productIsUnavailable_
Definition: Group.h:218
bool edm::InputGroup::productUnavailable_ ( ) const
privatevirtual

Implements edm::Group.

Definition at line 161 of file Group.cc.

References edm::Group::product(), productIsUnavailable(), and setProductUnavailable().

161  {
162  if(productIsUnavailable()) {
163  return true;
164  }
165  // If there is a product, we know if it is real or a dummy.
166  if(product()) {
167  bool unavailable = !(product()->isPresent());
168  if(unavailable) {
170  }
171  return unavailable;
172  }
173  return false;
174  }
void setProductUnavailable() const
Definition: Group.h:198
boost::shared_ptr< EDProduct > product() const
Definition: Group.h:81
bool productIsUnavailable() const
Definition: Group.h:197
bool edm::InputGroup::putOrMergeProduct_ ( ) const
privatevirtual

Implements edm::Group.

Definition at line 93 of file Group.cc.

References edm::Group::product().

93  {
94  return(!product());
95  }
boost::shared_ptr< EDProduct > product() const
Definition: Group.h:81
void edm::InputGroup::putProduct_ ( std::auto_ptr< EDProduct edp,
boost::shared_ptr< ProductProvenance productProvenance 
)
privatevirtual

Implements edm::Group.

Definition at line 70 of file Group.cc.

References edm::Group::product(), edm::Group::provenance(), setProduct(), and edm::Group::setProductProvenance().

72  {
73  assert(!product());
74  assert(!provenance()->productProvenanceResolved());
75  setProductProvenance(productProvenance);
76  assert(provenance()->productProvenanceResolved());
77  setProduct(edp);
78  }
void setProduct(std::auto_ptr< EDProduct > prod) const
Definition: Group.cc:144
boost::shared_ptr< EDProduct > product() const
Definition: Group.h:81
Provenance * provenance() const
Definition: Group.cc:220
void setProductProvenance(boost::shared_ptr< ProductProvenance > prov) const
Definition: Group.cc:153
void edm::InputGroup::putProduct_ ( std::auto_ptr< EDProduct edp) const
privatevirtual

Implements edm::Group.

Definition at line 98 of file Group.cc.

References edm::Group::product(), and setProduct().

98  {
99  assert(!product());
100  setProduct(edp);
101  }
void setProduct(std::auto_ptr< EDProduct > prod) const
Definition: Group.cc:144
boost::shared_ptr< EDProduct > product() const
Definition: Group.h:81
virtual void edm::InputGroup::resetStatus ( )
inlineprivatevirtual

Implements edm::Group.

Definition at line 212 of file Group.h.

References productIsUnavailable_.

212 {productIsUnavailable_ = false;}
bool productIsUnavailable_
Definition: Group.h:218
void edm::InputGroup::setProduct ( std::auto_ptr< EDProduct prod) const

Definition at line 144 of file Group.cc.

References groupData(), edm::Group::product(), edm::GroupData::product_, and setProductUnavailable().

Referenced by putProduct_().

144  {
145  assert (!product());
146  if(prod.get() == 0 || !prod->isPresent()) {
148  }
149  groupData().product_.reset(prod.release()); // Group takes ownership
150  }
void setProductUnavailable() const
Definition: Group.h:198
virtual GroupData const & groupData() const
Definition: Group.h:215
boost::shared_ptr< EDProduct > product_
Definition: Group.h:53
boost::shared_ptr< EDProduct > product() const
Definition: Group.h:81
void edm::InputGroup::setProductUnavailable ( ) const
inline

Definition at line 198 of file Group.h.

References productIsUnavailable_.

Referenced by productUnavailable_(), and setProduct().

198 {productIsUnavailable_ = true;}
bool productIsUnavailable_
Definition: Group.h:218
virtual void edm::InputGroup::swap_ ( Group rhs)
inlineprivatevirtual

Implements edm::Group.

Definition at line 201 of file Group.h.

References groupData_, productIsUnavailable_, edm::swap(), and std::swap().

201  {
202  InputGroup& other = dynamic_cast<InputGroup&>(rhs);
203  edm::swap(groupData_, other.groupData_);
204  std::swap(productIsUnavailable_, other.productIsUnavailable_);
205  }
void swap(Association< C > &lhs, Association< C > &rhs)
Definition: Association.h:117
GroupData groupData_
Definition: Group.h:217
InputGroup(boost::shared_ptr< ConstBranchDescription > bd)
Definition: Group.h:189
void swap(edm::DataFrameContainer &lhs, edm::DataFrameContainer &rhs)
bool productIsUnavailable_
Definition: Group.h:218

Member Data Documentation

GroupData edm::InputGroup::groupData_
private

Definition at line 217 of file Group.h.

Referenced by groupData(), and swap_().

bool edm::InputGroup::productIsUnavailable_
mutableprivate

Definition at line 218 of file Group.h.

Referenced by productIsUnavailable(), resetStatus(), setProductUnavailable(), and swap_().