CMS 3D CMS Logo

Public Types | Public Member Functions | Private Member Functions | Private Attributes

edm::NoProcessProductHolder Class Reference

#include <ProductHolder.h>

Inheritance diagram for edm::NoProcessProductHolder:
edm::ProductHolderBase

List of all members.

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 ProductDatagetProductData ()
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 ProductProvenanceproductProvenancePtr_ () 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< ProductHolderIndexmatchingHolders_
Principalprincipal_

Detailed Description

Definition at line 429 of file ProductHolder.h.


Member Typedef Documentation

Definition at line 431 of file ProductHolder.h.


Constructor & Destructor Documentation

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.

{}

Member Function Documentation

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]

Implements edm::ProductHolderBase.

Definition at line 470 of file ProductHolder.cc.

                                                 {
  }
void edm::NoProcessProductHolder::resetStatus_ ( ) [private, virtual]

Implements edm::ProductHolderBase.

Definition at line 457 of file ProductHolder.cc.

                                            {
  }
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]

Implements edm::ProductHolderBase.

Definition at line 463 of file ProductHolder.cc.

                                                                                {
  }
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]

Implements edm::ProductHolderBase.

Definition at line 460 of file ProductHolder.cc.

                                                                                                                                      {
  }
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_);
  }

Member Data Documentation

std::vector<bool> edm::NoProcessProductHolder::ambiguous_ [private]

Definition at line 463 of file ProductHolder.h.

Referenced by NoProcessProductHolder(), resolveProduct_(), and swap_().

Definition at line 462 of file ProductHolder.h.

Referenced by NoProcessProductHolder(), resolveProduct_(), and swap_().

Definition at line 464 of file ProductHolder.h.

Referenced by resolveProduct_(), and swap_().