#include <ProductHolder.h>
Public Types | |
typedef ProducedProductHolder::ProductStatus | ProductStatus |
Public Member Functions | |
NoProcessProductHolder (std::vector< ProductHolderIndex > const &matchingHolders, std::vector< bool > const &ambiguous, Principal *principal) | |
virtual | ~NoProcessProductHolder () |
Private Member Functions | |
virtual ConstBranchDescription const & | branchDescription_ () const |
virtual void | checkType_ (WrapperOwningHolder const &prod) const |
virtual ProductData & | getProductData () |
virtual ProductData const & | getProductData () const |
virtual void | mergeProduct_ (WrapperOwningHolder const &edp, ProductProvenance &productProvenance) |
virtual void | mergeProduct_ (WrapperOwningHolder const &edp) const |
virtual bool | onDemand_ () const |
virtual ProductProvenance * | productProvenancePtr_ () const |
virtual bool | productUnavailable_ () const |
virtual bool | productWasDeleted_ () const |
virtual bool | putOrMergeProduct_ () const |
virtual void | putProduct_ (WrapperOwningHolder const &edp, ProductProvenance const &productProvenance) |
virtual void | putProduct_ (WrapperOwningHolder const &edp) const |
virtual void | resetBranchDescription_ (boost::shared_ptr< ConstBranchDescription > bd) |
virtual void | resetProductData_ () |
virtual void | resetStatus_ () |
virtual std::string const & | resolvedModuleLabel_ () const |
virtual ProductData const * | resolveProduct_ (ResolveStatus &resolveStatus, bool skipCurrentProcess) const |
virtual void | setPrincipal_ (Principal *principal) |
virtual void | setProcessHistoryID_ (ProcessHistoryID const &phid) |
virtual void | setProductDeleted_ () |
virtual void | setProvenance_ (boost::shared_ptr< BranchMapper > mapper, ProcessHistoryID const &phid, ProductID const &pid) |
virtual bool | singleProduct_ () const |
virtual void | swap_ (ProductHolderBase &rhs) |
Private Attributes | |
std::vector< bool > | ambiguous_ |
std::vector< ProductHolderIndex > | matchingHolders_ |
Principal * | principal_ |
Definition at line 429 of file ProductHolder.h.
Definition at line 431 of file ProductHolder.h.
edm::NoProcessProductHolder::NoProcessProductHolder | ( | std::vector< ProductHolderIndex > const & | matchingHolders, |
std::vector< bool > const & | ambiguous, | ||
Principal * | principal | ||
) |
Definition at line 384 of file ProductHolder.cc.
References ambiguous_, and matchingHolders_.
: matchingHolders_(matchingHolders), ambiguous_(ambiguous), principal_(principal) { assert(ambiguous_.size() == matchingHolders_.size()); }
edm::NoProcessProductHolder::~NoProcessProductHolder | ( | ) | [virtual] |
Definition at line 36 of file ProductHolder.cc.
{}
ConstBranchDescription const & edm::NoProcessProductHolder::branchDescription_ | ( | ) | const [private, virtual] |
Implements edm::ProductHolderBase.
Definition at line 543 of file ProductHolder.cc.
References Exception, and edm::errors::LogicError.
{ throw Exception(errors::LogicError) << "NoProcessProductHolder::branchDescription_() not implemented and should never be called.\n" << "Contact a Framework developer\n"; }
void edm::NoProcessProductHolder::checkType_ | ( | WrapperOwningHolder const & | prod | ) | const [private, virtual] |
Implements edm::ProductHolderBase.
Definition at line 531 of file ProductHolder.cc.
References Exception, and edm::errors::LogicError.
{ throw Exception(errors::LogicError) << "NoProcessProductHolder::checkType_() not implemented and should never be called.\n" << "Contact a Framework developer\n"; }
ProductData & edm::NoProcessProductHolder::getProductData | ( | ) | [private, virtual] |
Implements edm::ProductHolderBase.
Definition at line 399 of file ProductHolder.cc.
References Exception, and edm::errors::LogicError.
{ throw Exception(errors::LogicError) << "NoProcessProductHolder::getProductData() not implemented and should never be called.\n" << "Contact a Framework developer\n"; }
ProductData const & edm::NoProcessProductHolder::getProductData | ( | ) | const [private, virtual] |
Implements edm::ProductHolderBase.
Definition at line 393 of file ProductHolder.cc.
References Exception, and edm::errors::LogicError.
{ throw Exception(errors::LogicError) << "NoProcessProductHolder::getProductData() not implemented and should never be called.\n" << "Contact a Framework developer\n"; }
void edm::NoProcessProductHolder::mergeProduct_ | ( | WrapperOwningHolder const & | edp, |
ProductProvenance & | productProvenance | ||
) | [private, virtual] |
Implements edm::ProductHolderBase.
Definition at line 513 of file ProductHolder.cc.
References Exception, and edm::errors::LogicError.
{ throw Exception(errors::LogicError) << "NoProcessProductHolder::mergeProduct_() not implemented and should never be called.\n" << "Contact a Framework developer\n"; }
void edm::NoProcessProductHolder::mergeProduct_ | ( | WrapperOwningHolder const & | edp | ) | const [private, virtual] |
Implements edm::ProductHolderBase.
Definition at line 519 of file ProductHolder.cc.
References Exception, and edm::errors::LogicError.
{ throw Exception(errors::LogicError) << "NoProcessProductHolder::mergeProduct_() not implemented and should never be called.\n" << "Contact a Framework developer\n"; }
bool edm::NoProcessProductHolder::onDemand_ | ( | ) | const [private, virtual] |
Implements edm::ProductHolderBase.
Definition at line 483 of file ProductHolder.cc.
References Exception, and edm::errors::LogicError.
{ throw Exception(errors::LogicError) << "NoProcessProductHolder::onDemand_() not implemented and should never be called.\n" << "Contact a Framework developer\n"; }
ProductProvenance * edm::NoProcessProductHolder::productProvenancePtr_ | ( | ) | const [private, virtual] |
Implements edm::ProductHolderBase.
Definition at line 466 of file ProductHolder.cc.
{ return nullptr; }
bool edm::NoProcessProductHolder::productUnavailable_ | ( | ) | const [private, virtual] |
Implements edm::ProductHolderBase.
Definition at line 489 of file ProductHolder.cc.
References Exception, and edm::errors::LogicError.
{ throw Exception(errors::LogicError) << "NoProcessProductHolder::productUnavailable_() not implemented and should never be called.\n" << "Contact a Framework developer\n"; }
bool edm::NoProcessProductHolder::productWasDeleted_ | ( | ) | const [private, virtual] |
Implements edm::ProductHolderBase.
Definition at line 495 of file ProductHolder.cc.
References Exception, and edm::errors::LogicError.
{ throw Exception(errors::LogicError) << "NoProcessProductHolder::productWasDeleted_() not implemented and should never be called.\n" << "Contact a Framework developer\n"; }
bool edm::NoProcessProductHolder::putOrMergeProduct_ | ( | ) | const [private, virtual] |
Implements edm::ProductHolderBase.
Definition at line 525 of file ProductHolder.cc.
References Exception, and edm::errors::LogicError.
{ throw Exception(errors::LogicError) << "NoProcessProductHolder::putOrMergeProduct_() not implemented and should never be called.\n" << "Contact a Framework developer\n"; }
void edm::NoProcessProductHolder::putProduct_ | ( | WrapperOwningHolder const & | edp, |
ProductProvenance const & | productProvenance | ||
) | [private, virtual] |
Implements edm::ProductHolderBase.
Definition at line 501 of file ProductHolder.cc.
References Exception, and edm::errors::LogicError.
{ throw Exception(errors::LogicError) << "NoProcessProductHolder::putProduct_() not implemented and should never be called.\n" << "Contact a Framework developer\n"; }
void edm::NoProcessProductHolder::putProduct_ | ( | WrapperOwningHolder const & | edp | ) | const [private, virtual] |
Implements edm::ProductHolderBase.
Definition at line 507 of file ProductHolder.cc.
References Exception, and edm::errors::LogicError.
{ throw Exception(errors::LogicError) << "NoProcessProductHolder::putProduct_() not implemented and should never be called.\n" << "Contact a Framework developer\n"; }
void edm::NoProcessProductHolder::resetBranchDescription_ | ( | boost::shared_ptr< ConstBranchDescription > | bd | ) | [private, virtual] |
Implements edm::ProductHolderBase.
Definition at line 549 of file ProductHolder.cc.
References Exception, and edm::errors::LogicError.
{ throw Exception(errors::LogicError) << "NoProcessProductHolder::resetBranchDescription_() not implemented and should never be called.\n" << "Contact a Framework developer\n"; }
void edm::NoProcessProductHolder::resetProductData_ | ( | ) | [private, virtual] |
void edm::NoProcessProductHolder::resetStatus_ | ( | ) | [private, virtual] |
virtual std::string const& edm::NoProcessProductHolder::resolvedModuleLabel_ | ( | ) | const [inline, private, virtual] |
Implements edm::ProductHolderBase.
Definition at line 454 of file ProductHolder.h.
References edm::ProductHolderBase::moduleLabel().
{return moduleLabel();}
ProductData const * edm::NoProcessProductHolder::resolveProduct_ | ( | ResolveStatus & | resolveStatus, |
bool | skipCurrentProcess | ||
) | const [private, virtual] |
Implements edm::ProductHolderBase.
Definition at line 405 of file ProductHolder.cc.
References edm::ProductHolderBase::Ambiguous, ambiguous_, edm::Principal::getProductByIndex(), gen::k, edm::Principal::lookupProcessOrder(), matchingHolders_, principal_, edm::ProductHolderIndexInvalid, edm::ProductHolderBase::ProductNotFound, and edm::ProductHolderBase::resolveProduct().
{ std::vector<unsigned int> const& lookupProcessOrder = principal_->lookupProcessOrder(); for(unsigned int k : lookupProcessOrder) { assert(k < ambiguous_.size()); if(k == 0) break; // Done if(ambiguous_[k]) { resolveStatus = Ambiguous; return nullptr; } if (matchingHolders_[k] != ProductHolderIndexInvalid) { ProductHolderBase const* productHolder = principal_->getProductByIndex(matchingHolders_[k], false, false); ProductData const* pd = productHolder->resolveProduct(resolveStatus, skipCurrentProcess); if(pd != nullptr) return pd; } } resolveStatus = ProductNotFound; return nullptr; }
void edm::NoProcessProductHolder::setPrincipal_ | ( | Principal * | principal | ) | [private, virtual] |
Implements edm::ProductHolderBase.
Definition at line 477 of file ProductHolder.cc.
References Exception, and edm::errors::LogicError.
{ throw Exception(errors::LogicError) << "NoProcessProductHolder::setPrincipal__() not implemented and should never be called.\n" << "Contact a Framework developer\n"; }
void edm::NoProcessProductHolder::setProcessHistoryID_ | ( | ProcessHistoryID const & | phid | ) | [private, virtual] |
void edm::NoProcessProductHolder::setProductDeleted_ | ( | ) | [private, virtual] |
Implements edm::ProductHolderBase.
Definition at line 537 of file ProductHolder.cc.
References Exception, and edm::errors::LogicError.
{ throw Exception(errors::LogicError) << "NoProcessProductHolder::setProductDeleted_() not implemented and should never be called.\n" << "Contact a Framework developer\n"; }
void edm::NoProcessProductHolder::setProvenance_ | ( | boost::shared_ptr< BranchMapper > | mapper, |
ProcessHistoryID const & | phid, | ||
ProductID const & | pid | ||
) | [private, virtual] |
bool edm::NoProcessProductHolder::singleProduct_ | ( | ) | const [private, virtual] |
Implements edm::ProductHolderBase.
Definition at line 473 of file ProductHolder.cc.
{ return false; }
void edm::NoProcessProductHolder::swap_ | ( | ProductHolderBase & | rhs | ) | [private, virtual] |
Implements edm::ProductHolderBase.
Definition at line 450 of file ProductHolder.cc.
References ambiguous_, matchingHolders_, principal_, and edm::ProductHolderBase::swap().
{ NoProcessProductHolder& other = dynamic_cast<NoProcessProductHolder&>(rhs); ambiguous_.swap(other.ambiguous_); matchingHolders_.swap(other.matchingHolders_); std::swap(principal_, other.principal_); }
std::vector<bool> edm::NoProcessProductHolder::ambiguous_ [private] |
Definition at line 463 of file ProductHolder.h.
Referenced by NoProcessProductHolder(), resolveProduct_(), and swap_().
std::vector<ProductHolderIndex> edm::NoProcessProductHolder::matchingHolders_ [private] |
Definition at line 462 of file ProductHolder.h.
Referenced by NoProcessProductHolder(), resolveProduct_(), and swap_().
Principal* edm::NoProcessProductHolder::principal_ [private] |
Definition at line 464 of file ProductHolder.h.
Referenced by resolveProduct_(), and swap_().