CMS 3D CMS Logo

Public Member Functions | Private Member Functions | Private Attributes

edm::InputGroup Class Reference

#include <Group.h>

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

List of all members.

Public Member Functions

 InputGroup (boost::shared_ptr< ConstBranchDescription > bd)
bool productIsUnavailable () const
void setProduct (WrapperOwningHolder const &prod) const
void setProductUnavailable () const
virtual ~InputGroup ()

Private Member Functions

virtual void checkType_ (WrapperOwningHolder const &) const
virtual void mergeProduct_ (WrapperOwningHolder const &edp) const
virtual void mergeProduct_ (WrapperOwningHolder const &edp, ProductProvenance &productProvenance)
virtual bool onDemand_ () const
virtual ProductDataproductData ()
virtual ProductData const & productData () const
virtual bool productUnavailable_ () const
virtual bool productWasDeleted_ () const
virtual bool putOrMergeProduct_ () const
virtual void putProduct_ (WrapperOwningHolder const &edp) const
virtual void putProduct_ (WrapperOwningHolder const &edp, ProductProvenance const &productProvenance)
virtual void resetStatus ()
virtual void setProductDeleted ()
virtual void swap_ (Group &rhs)

Private Attributes

ProductData productData_
bool productHasBeenDeleted_
bool productIsUnavailable_

Detailed Description

Definition at line 167 of file Group.h.


Constructor & Destructor Documentation

edm::InputGroup::InputGroup ( boost::shared_ptr< ConstBranchDescription bd) [inline, explicit]

Definition at line 169 of file Group.h.

edm::InputGroup::~InputGroup ( ) [virtual]

Definition at line 14 of file Group.cc.

{}

Member Function Documentation

virtual void edm::InputGroup::checkType_ ( WrapperOwningHolder const &  ) const [inline, private, virtual]

Implements edm::Group.

Definition at line 192 of file Group.h.

{}
void edm::InputGroup::mergeProduct_ ( WrapperOwningHolder const &  edp,
ProductProvenance productProvenance 
) [private, virtual]

Implements edm::Group.

Definition at line 92 of file Group.cc.

                            {
    assert(0);
  }
void edm::InputGroup::mergeProduct_ ( WrapperOwningHolder const &  edp) const [private, virtual]

Implements edm::Group.

Definition at line 99 of file Group.cc.

References edm::Group::mergeTheProduct().

                                                                {
    mergeTheProduct(edp);
  }
virtual bool edm::InputGroup::onDemand_ ( ) const [inline, private, virtual]

Implements edm::Group.

Definition at line 195 of file Group.h.

{return false;}
virtual ProductData& edm::InputGroup::productData ( ) [inline, private, virtual]

Implements edm::Group.

Definition at line 199 of file Group.h.

References productData_.

{return productData_;}
virtual ProductData const& edm::InputGroup::productData ( ) const [inline, private, virtual]

Implements edm::Group.

Definition at line 198 of file Group.h.

References productData_.

Referenced by setProduct().

{return productData_;}
bool edm::InputGroup::productIsUnavailable ( ) const [inline]

Definition at line 178 of file Group.h.

References productIsUnavailable_.

Referenced by productUnavailable_().

bool edm::InputGroup::productUnavailable_ ( ) const [private, virtual]

Implements edm::Group.

Definition at line 160 of file Group.cc.

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

                                        {
    if(productIsUnavailable()) {
      return true;
    }
    // If there is a product, we know if it is real or a dummy.
    if(product()) {
      bool unavailable = !(wrapper().isPresent());
      if(unavailable) {
        setProductUnavailable();
      }
      return unavailable;
    }
    return false;
  }
virtual bool edm::InputGroup::productWasDeleted_ ( ) const [inline, private, virtual]

Implements edm::Group.

Definition at line 197 of file Group.h.

References productHasBeenDeleted_.

bool edm::InputGroup::putOrMergeProduct_ ( ) const [private, virtual]

Implements edm::Group.

Definition at line 104 of file Group.cc.

References edm::Group::product().

                                       {
    return(!product());
  }
void edm::InputGroup::putProduct_ ( WrapperOwningHolder const &  edp,
ProductProvenance const &  productProvenance 
) [private, virtual]

Implements edm::Group.

Definition at line 81 of file Group.cc.

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

                                                    {
    assert(!product());
    assert(!provenance()->productProvenanceValid());
    setProductProvenance(productProvenance);
    assert(provenance()->productProvenanceValid());
    setProduct(edp);
  }
void edm::InputGroup::putProduct_ ( WrapperOwningHolder const &  edp) const [private, virtual]

Implements edm::Group.

Definition at line 109 of file Group.cc.

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

                                                              {
    assert(!product());
    setProduct(edp);
  }
virtual void edm::InputGroup::resetStatus ( ) [inline, private, virtual]

Implements edm::Group.

Definition at line 193 of file Group.h.

References productHasBeenDeleted_, and productIsUnavailable_.

void edm::InputGroup::setProduct ( WrapperOwningHolder const &  prod) const

Definition at line 142 of file Group.cc.

References edm::WrapperHolder::interface(), edm::WrapperHolder::isPresent(), edm::WrapperHolder::isValid(), edm::WrapperOwningHolder::product(), edm::Group::product(), productData(), setProductUnavailable(), and edm::ProductData::wrapper_.

Referenced by putProduct_().

                                                              {
    assert (!product());
    if(!prod.isValid() || !prod.isPresent()) {
      setProductUnavailable();
    }
    assert(productData().getInterface() == prod.interface() || !prod.isValid());
    productData().wrapper_ = prod.product();
  }
virtual void edm::InputGroup::setProductDeleted ( ) [inline, private, virtual]

Implements edm::Group.

Definition at line 200 of file Group.h.

References productHasBeenDeleted_.

void edm::InputGroup::setProductUnavailable ( ) const [inline]

Definition at line 179 of file Group.h.

References productIsUnavailable_.

Referenced by productUnavailable_(), and setProduct().

virtual void edm::InputGroup::swap_ ( Group rhs) [inline, private, virtual]

Implements edm::Group.

Definition at line 182 of file Group.h.

References productData_, productIsUnavailable_, and edm::Group::swap().

                                     {
        InputGroup& other = dynamic_cast<InputGroup&>(rhs);
        edm::swap(productData_, other.productData_);
        std::swap(productIsUnavailable_, other.productIsUnavailable_);
      }

Member Data Documentation

Definition at line 202 of file Group.h.

Referenced by productData(), and swap_().

bool edm::InputGroup::productHasBeenDeleted_ [mutable, private]

Definition at line 204 of file Group.h.

Referenced by productWasDeleted_(), resetStatus(), and setProductDeleted().

bool edm::InputGroup::productIsUnavailable_ [mutable, private]

Definition at line 203 of file Group.h.

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