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 ()
 
bool isMatchingSequence (Reflex::Type const &wanted) const
 
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 194 of file Group.h.

Constructor & Destructor Documentation

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

Definition at line 196 of file Group.h.

196  :
197  Group(), groupData_(bd), productIsUnavailable_(false) {}
Group()
Definition: Group.cc:14
GroupData groupData_
Definition: Group.h:224
bool productIsUnavailable_
Definition: Group.h:225
edm::InputGroup::~InputGroup ( )
virtual

Definition at line 17 of file Group.cc.

17 {}

Member Function Documentation

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

Implements edm::Group.

Definition at line 218 of file Group.h.

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

Implements edm::Group.

Definition at line 222 of file Group.h.

References groupData_.

Referenced by setProduct().

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

Implements edm::Group.

Definition at line 223 of file Group.h.

References groupData_.

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

Implements edm::Group.

Definition at line 80 of file Group.cc.

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

Implements edm::Group.

Definition at line 87 of file Group.cc.

References edm::Group::mergeTheProduct().

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

Implements edm::Group.

Definition at line 220 of file Group.h.

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

Definition at line 204 of file Group.h.

References productIsUnavailable_.

Referenced by productUnavailable_().

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

Implements edm::Group.

Definition at line 160 of file Group.cc.

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

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

Implements edm::Group.

Definition at line 92 of file Group.cc.

References edm::Group::product().

92  {
93  return (!product());
94  }
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 69 of file Group.cc.

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

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

Implements edm::Group.

Definition at line 97 of file Group.cc.

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

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

Implements edm::Group.

Definition at line 219 of file Group.h.

References productIsUnavailable_.

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

Definition at line 143 of file Group.cc.

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

Referenced by putProduct_().

143  {
144  assert (!product());
145  if (prod.get() == 0 || !prod->isPresent()) {
147  }
148  groupData().product_.reset(prod.release()); // Group takes ownership
149  }
void setProductUnavailable() const
Definition: Group.h:205
virtual GroupData const & groupData() const
Definition: Group.h:222
tuple prod
Definition: CrabTask.py:87
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 205 of file Group.h.

References productIsUnavailable_.

Referenced by productUnavailable_(), and setProduct().

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

Implements edm::Group.

Definition at line 208 of file Group.h.

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

208  {
209  InputGroup& other = dynamic_cast<InputGroup&>(rhs);
210  edm::swap(groupData_, other.groupData_);
211  std::swap(productIsUnavailable_, other.productIsUnavailable_);
212  }
void swap(Association< C > &lhs, Association< C > &rhs)
Definition: Association.h:112
GroupData groupData_
Definition: Group.h:224
InputGroup(boost::shared_ptr< ConstBranchDescription > bd)
Definition: Group.h:196
void swap(edm::DataFrameContainer &lhs, edm::DataFrameContainer &rhs)
bool productIsUnavailable_
Definition: Group.h:225

Member Data Documentation

GroupData edm::InputGroup::groupData_
private

Definition at line 224 of file Group.h.

Referenced by groupData(), and swap_().

bool edm::InputGroup::productIsUnavailable_
mutableprivate

Definition at line 225 of file Group.h.

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