#include <ProductHolder.h>
Public Member Functions | |
UnscheduledProductHolder (boost::shared_ptr< ConstBranchDescription > bd, Principal *principal) | |
virtual | ~UnscheduledProductHolder () |
Private Member Functions | |
virtual ProductData const & | getProductData () const |
virtual ProductData & | getProductData () |
virtual bool | onDemand_ () const |
virtual void | resetStatus_ () |
virtual ProductData const * | resolveProduct_ (ResolveStatus &resolveStatus, bool skipCurrentProcess) const |
virtual ProductStatus & | status_ () const |
virtual void | swap_ (ProductHolderBase &rhs) |
Private Attributes | |
Principal * | principal_ |
ProductData | productData_ |
ProductStatus | theStatus_ |
Definition at line 330 of file ProductHolder.h.
edm::UnscheduledProductHolder::UnscheduledProductHolder | ( | boost::shared_ptr< ConstBranchDescription > | bd, |
Principal * | principal | ||
) | [inline, explicit] |
Definition at line 332 of file ProductHolder.h.
: ProducedProductHolder(), productData_(bd), theStatus_(UnscheduledNotRun), principal_(principal) {}
edm::UnscheduledProductHolder::~UnscheduledProductHolder | ( | ) | [virtual] |
Definition at line 33 of file ProductHolder.cc.
{}
virtual ProductData const& edm::UnscheduledProductHolder::getProductData | ( | ) | const [inline, private, virtual] |
Implements edm::ProductHolderBase.
Definition at line 344 of file ProductHolder.h.
References productData_.
{return productData_;}
virtual ProductData& edm::UnscheduledProductHolder::getProductData | ( | ) | [inline, private, virtual] |
Implements edm::ProductHolderBase.
Definition at line 345 of file ProductHolder.h.
References productData_.
{return productData_;}
virtual bool edm::UnscheduledProductHolder::onDemand_ | ( | ) | const [inline, private, virtual] |
Implements edm::ProductHolderBase.
Definition at line 343 of file ProductHolder.h.
References edm::ProducedProductHolder::status(), and edm::ProducedProductHolder::UnscheduledNotRun.
{return status() == UnscheduledNotRun;}
virtual void edm::UnscheduledProductHolder::resetStatus_ | ( | ) | [inline, private, virtual] |
Implements edm::ProductHolderBase.
Definition at line 342 of file ProductHolder.h.
References theStatus_, and edm::ProducedProductHolder::UnscheduledNotRun.
ProductData const * edm::UnscheduledProductHolder::resolveProduct_ | ( | ResolveStatus & | resolveStatus, |
bool | skipCurrentProcess | ||
) | const [private, virtual] |
Implements edm::ProductHolderBase.
Definition at line 87 of file ProductHolder.cc.
References edm::ProductHolderBase::moduleLabel(), principal_, edm::ProductHolderBase::product(), productData_, edm::ProductHolderBase::ProductFound, edm::ProductHolderBase::ProductNotFound, edm::ProductHolderBase::productWasDeleted(), edm::ProductHolderBase::throwProductDeletedException(), edm::Principal::unscheduledFill(), and edm::ProductHolderBase::wrapper().
{ if (!skipCurrentProcess) { if(productWasDeleted()) { throwProductDeletedException(); } if(product() && wrapper().isPresent()) { resolveStatus = ProductFound; return &productData_; } principal_->unscheduledFill(moduleLabel()); if(product() && wrapper().isPresent()) { resolveStatus = ProductFound; return &productData_; } } resolveStatus = ProductNotFound; return nullptr; }
virtual ProductStatus& edm::UnscheduledProductHolder::status_ | ( | ) | const [inline, private, virtual] |
Implements edm::ProducedProductHolder.
Definition at line 346 of file ProductHolder.h.
References theStatus_.
{return theStatus_;}
virtual void edm::UnscheduledProductHolder::swap_ | ( | ProductHolderBase & | rhs | ) | [inline, private, virtual] |
Implements edm::ProductHolderBase.
Definition at line 336 of file ProductHolder.h.
References productData_, edm::ProductHolderBase::swap(), and theStatus_.
{ UnscheduledProductHolder& other = dynamic_cast<UnscheduledProductHolder&>(rhs); edm::swap(productData_, other.productData_); std::swap(theStatus_, other.theStatus_); }
Definition at line 350 of file ProductHolder.h.
Referenced by resolveProduct_().
Definition at line 348 of file ProductHolder.h.
Referenced by getProductData(), resolveProduct_(), and swap_().
ProductStatus edm::UnscheduledProductHolder::theStatus_ [mutable, private] |
Definition at line 349 of file ProductHolder.h.
Referenced by resetStatus_(), status_(), and swap_().