CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Types | Public Member Functions | Private Member Functions | Private Attributes
edm::AliasProductHolder Class Reference

#include <ProductHolder.h>

Inheritance diagram for edm::AliasProductHolder:
edm::ProductHolderBase

Public Types

typedef
ProducedProductHolder::ProductStatus 
ProductStatus
 
- Public Types inherited from edm::ProductHolderBase
enum  ResolveStatus { ProductFound, ProductNotFound, Ambiguous }
 

Public Member Functions

 AliasProductHolder (std::shared_ptr< BranchDescription const > bd, ProducedProductHolder &realProduct)
 
ProductStatusstatus () const
 
virtual ~AliasProductHolder ()
 
- Public Member Functions inherited from edm::ProductHolderBase
BranchDescription const & branchDescription () const
 
void checkType (WrapperBase const &prod) const
 
void deleteProduct ()
 
void mergeProduct (std::unique_ptr< WrapperBase > edp, ProductProvenance &productProvenance)
 
void mergeProduct (std::unique_ptr< WrapperBase > edp) const
 
void mergeTheProduct (std::unique_ptr< WrapperBase > edp) const
 
std::string const & moduleLabel () const
 
bool onDemand () const
 
ProductHolderBaseoperator= (ProductHolderBase const &)=delete
 
std::string const & processName () const
 
WrapperBaseproduct () const
 
ProductData const & productData () const
 
ProductDataproductData ()
 
 ProductHolderBase ()
 
 ProductHolderBase (ProductHolderBase const &)=delete
 
ProductID const & productID () const
 
std::string const & productInstanceName () const
 
ProductProvenanceproductProvenancePtr () const
 
TypeID productType () const
 
bool productUnavailable () const
 
bool productWasDeleted () const
 
Provenanceprovenance () const
 
bool provenanceAvailable () const
 
bool putOrMergeProduct () const
 
void putProduct (std::unique_ptr< WrapperBase > edp, ProductProvenance const &productProvenance)
 
void putProduct (std::unique_ptr< WrapperBase > edp) const
 
void reallyCheckType (WrapperBase const &prod) const
 
void resetBranchDescription (std::shared_ptr< BranchDescription const > bd)
 
void resetProductData ()
 
void resetStatus ()
 
std::string const & resolvedModuleLabel () const
 
ProductData const * resolveProduct (ResolveStatus &resolveStatus, bool skipCurrentProcess, ModuleCallingContext const *mcc) const
 
void setPrincipal (Principal *principal)
 
void setProcessHistory (ProcessHistory const &ph)
 
void setProductDeleted ()
 
void setProductProvenance (ProductProvenance const &prov) const
 
void setProvenance (std::shared_ptr< ProductProvenanceRetriever > provRetriever, ProcessHistory const &ph, ProductID const &pid)
 
bool singleProduct () const
 
void swap (ProductHolderBase &rhs)
 
void throwProductDeletedException () const
 
void write (std::ostream &os) const
 
virtual ~ProductHolderBase ()
 

Private Member Functions

virtual BranchDescription const & branchDescription_ () const override
 
virtual void checkType_ (WrapperBase const &prod) const override
 
virtual ProductData const & getProductData () const override
 
virtual ProductDatagetProductData () override
 
virtual void mergeProduct_ (std::unique_ptr< WrapperBase > edp, ProductProvenance &productProvenance) override
 
virtual void mergeProduct_ (std::unique_ptr< WrapperBase > edp) const override
 
virtual bool onDemand_ () const override
 
virtual ProductProvenanceproductProvenancePtr_ () const override
 
virtual bool productUnavailable_ () const override
 
virtual bool productWasDeleted_ () const override
 
virtual bool putOrMergeProduct_ () const override
 
virtual void putProduct_ (std::unique_ptr< WrapperBase > edp, ProductProvenance const &productProvenance) override
 
virtual void putProduct_ (std::unique_ptr< WrapperBase > edp) const override
 
virtual void resetBranchDescription_ (std::shared_ptr< BranchDescription const > bd) override
 
virtual void resetProductData_ () override
 
virtual void resetStatus_ () override
 
virtual std::string const & resolvedModuleLabel_ () const override
 
virtual ProductData const * resolveProduct_ (ResolveStatus &resolveStatus, bool skipCurrentProcess, ModuleCallingContext const *mcc) const override
 
virtual void setPrincipal_ (Principal *principal) override
 
virtual void setProcessHistory_ (ProcessHistory const &ph) override
 
virtual void setProductDeleted_ () override
 
virtual void setProvenance_ (std::shared_ptr< ProductProvenanceRetriever > provRetriever, ProcessHistory const &ph, ProductID const &pid) override
 
virtual bool singleProduct_ () const override
 
virtual void swap_ (ProductHolderBase &rhs) override
 

Private Attributes

std::shared_ptr
< BranchDescription const > 
bd_
 
ProducedProductHolderrealProduct_
 

Detailed Description

Definition at line 381 of file ProductHolder.h.

Member Typedef Documentation

Definition at line 383 of file ProductHolder.h.

Constructor & Destructor Documentation

edm::AliasProductHolder::AliasProductHolder ( std::shared_ptr< BranchDescription const >  bd,
ProducedProductHolder realProduct 
)
inlineexplicit

Definition at line 384 of file ProductHolder.h.

384 : ProductHolderBase(), realProduct_(realProduct), bd_(bd) {}
std::shared_ptr< BranchDescription const > bd_
ProducedProductHolder & realProduct_
edm::AliasProductHolder::~AliasProductHolder ( )
virtual

Definition at line 35 of file ProductHolder.cc.

35 {}

Member Function Documentation

virtual BranchDescription const& edm::AliasProductHolder::branchDescription_ ( ) const
inlineoverrideprivatevirtual

Implements edm::ProductHolderBase.

Definition at line 418 of file ProductHolder.h.

References bd_.

418 {return *bd_;}
std::shared_ptr< BranchDescription const > bd_
virtual void edm::AliasProductHolder::checkType_ ( WrapperBase const &  prod) const
inlineoverrideprivatevirtual

Implements edm::ProductHolderBase.

Definition at line 399 of file ProductHolder.h.

References edm::ProductHolderBase::checkType(), and realProduct_.

void checkType(WrapperBase const &prod) const
ProducedProductHolder & realProduct_
virtual ProductData const& edm::AliasProductHolder::getProductData ( ) const
inlineoverrideprivatevirtual

Implements edm::ProductHolderBase.

Definition at line 400 of file ProductHolder.h.

References edm::ProductHolderBase::productData(), and realProduct_.

400 {return realProduct_.productData();}
ProductData const & productData() const
Definition: ProductHolder.h:40
ProducedProductHolder & realProduct_
virtual ProductData& edm::AliasProductHolder::getProductData ( )
inlineoverrideprivatevirtual

Implements edm::ProductHolderBase.

Definition at line 401 of file ProductHolder.h.

References edm::ProductHolderBase::productData(), and realProduct_.

401 {return realProduct_.productData();}
ProductData const & productData() const
Definition: ProductHolder.h:40
ProducedProductHolder & realProduct_
virtual void edm::AliasProductHolder::mergeProduct_ ( std::unique_ptr< WrapperBase edp,
ProductProvenance productProvenance 
)
inlineoverrideprivatevirtual

Implements edm::ProductHolderBase.

Definition at line 409 of file ProductHolder.h.

References edm::ProductHolderBase::mergeProduct(), eostools::move(), and realProduct_.

409  {
410  realProduct_.mergeProduct(std::move(edp), productProvenance);
411  }
def move
Definition: eostools.py:508
void mergeProduct(std::unique_ptr< WrapperBase > edp, ProductProvenance &productProvenance)
ProducedProductHolder & realProduct_
virtual void edm::AliasProductHolder::mergeProduct_ ( std::unique_ptr< WrapperBase edp) const
inlineoverrideprivatevirtual

Implements edm::ProductHolderBase.

Definition at line 412 of file ProductHolder.h.

References edm::ProductHolderBase::mergeProduct(), eostools::move(), and realProduct_.

412  {
414  }
def move
Definition: eostools.py:508
void mergeProduct(std::unique_ptr< WrapperBase > edp, ProductProvenance &productProvenance)
ProducedProductHolder & realProduct_
virtual bool edm::AliasProductHolder::onDemand_ ( ) const
inlineoverrideprivatevirtual

Implements edm::ProductHolderBase.

Definition at line 395 of file ProductHolder.h.

References edm::ProductHolderBase::onDemand(), and realProduct_.

395 {return realProduct_.onDemand();}
bool onDemand() const
Definition: ProductHolder.h:75
ProducedProductHolder & realProduct_
ProductProvenance * edm::AliasProductHolder::productProvenancePtr_ ( ) const
overrideprivatevirtual

Implements edm::ProductHolderBase.

Definition at line 434 of file ProductHolder.cc.

References edm::Provenance::productProvenance(), and edm::ProductHolderBase::provenance().

434  {
435  return provenance()->productProvenance();
436  }
ProductProvenance * productProvenance() const
Definition: Provenance.h:49
Provenance * provenance() const
virtual bool edm::AliasProductHolder::productUnavailable_ ( ) const
inlineoverrideprivatevirtual

Implements edm::ProductHolderBase.

Definition at line 397 of file ProductHolder.h.

References edm::ProductHolderBase::productUnavailable(), and realProduct_.

ProducedProductHolder & realProduct_
bool productUnavailable() const
Definition: ProductHolder.h:69
virtual bool edm::AliasProductHolder::productWasDeleted_ ( ) const
inlineoverrideprivatevirtual

Implements edm::ProductHolderBase.

Definition at line 398 of file ProductHolder.h.

References edm::ProductHolderBase::productWasDeleted(), and realProduct_.

bool productWasDeleted() const
Definition: ProductHolder.h:78
ProducedProductHolder & realProduct_
virtual bool edm::AliasProductHolder::putOrMergeProduct_ ( ) const
inlineoverrideprivatevirtual

Implements edm::ProductHolderBase.

Definition at line 415 of file ProductHolder.h.

References edm::ProductHolderBase::putOrMergeProduct(), and realProduct_.

415  {
417  }
bool putOrMergeProduct() const
ProducedProductHolder & realProduct_
virtual void edm::AliasProductHolder::putProduct_ ( std::unique_ptr< WrapperBase edp,
ProductProvenance const &  productProvenance 
)
inlineoverrideprivatevirtual

Implements edm::ProductHolderBase.

Definition at line 403 of file ProductHolder.h.

References eostools::move(), edm::ProductHolderBase::putProduct(), and realProduct_.

403  {
404  realProduct_.putProduct(std::move(edp), productProvenance);
405  }
def move
Definition: eostools.py:508
void putProduct(std::unique_ptr< WrapperBase > edp, ProductProvenance const &productProvenance)
ProducedProductHolder & realProduct_
virtual void edm::AliasProductHolder::putProduct_ ( std::unique_ptr< WrapperBase edp) const
inlineoverrideprivatevirtual

Implements edm::ProductHolderBase.

Definition at line 406 of file ProductHolder.h.

References eostools::move(), edm::ProductHolderBase::putProduct(), and realProduct_.

406  {
408  }
def move
Definition: eostools.py:508
void putProduct(std::unique_ptr< WrapperBase > edp, ProductProvenance const &productProvenance)
ProducedProductHolder & realProduct_
virtual void edm::AliasProductHolder::resetBranchDescription_ ( std::shared_ptr< BranchDescription const >  bd)
inlineoverrideprivatevirtual

Implements edm::ProductHolderBase.

Definition at line 419 of file ProductHolder.h.

References bd_.

419 {bd_ = bd;}
std::shared_ptr< BranchDescription const > bd_
void edm::AliasProductHolder::resetProductData_ ( )
overrideprivatevirtual
virtual void edm::AliasProductHolder::resetStatus_ ( )
inlineoverrideprivatevirtual

Implements edm::ProductHolderBase.

Definition at line 396 of file ProductHolder.h.

References realProduct_, and edm::ProductHolderBase::resetStatus().

ProducedProductHolder & realProduct_
virtual std::string const& edm::AliasProductHolder::resolvedModuleLabel_ ( ) const
inlineoverrideprivatevirtual

Implements edm::ProductHolderBase.

Definition at line 420 of file ProductHolder.h.

References edm::ProductHolderBase::moduleLabel(), and realProduct_.

420 {return realProduct_.moduleLabel();}
std::string const & moduleLabel() const
ProducedProductHolder & realProduct_
virtual ProductData const* edm::AliasProductHolder::resolveProduct_ ( ResolveStatus resolveStatus,
bool  skipCurrentProcess,
ModuleCallingContext const *  mcc 
) const
inlineoverrideprivatevirtual

Implements edm::ProductHolderBase.

Definition at line 393 of file ProductHolder.h.

References realProduct_, and edm::ProductHolderBase::resolveProduct().

394  {return realProduct_.resolveProduct(resolveStatus, skipCurrentProcess, mcc);}
ProductData const * resolveProduct(ResolveStatus &resolveStatus, bool skipCurrentProcess, ModuleCallingContext const *mcc) const
Definition: ProductHolder.h:48
ProducedProductHolder & realProduct_
void edm::AliasProductHolder::setPrincipal_ ( Principal principal)
overrideprivatevirtual

Implements edm::ProductHolderBase.

Definition at line 447 of file ProductHolder.cc.

447  {
448  }
void edm::AliasProductHolder::setProcessHistory_ ( ProcessHistory const &  ph)
overrideprivatevirtual

Implements edm::ProductHolderBase.

Definition at line 430 of file ProductHolder.cc.

References edm::ProductHolderBase::productData(), edm::ProductData::prov_, and edm::Provenance::setProcessHistory().

430  {
432  }
Provenance prov_
Definition: ProductData.h:47
ProductData const & productData() const
Definition: ProductHolder.h:40
void setProcessHistory(ProcessHistory const &ph)
Definition: Provenance.h:76
virtual void edm::AliasProductHolder::setProductDeleted_ ( )
inlineoverrideprivatevirtual

Implements edm::ProductHolderBase.

Definition at line 402 of file ProductHolder.h.

References realProduct_, and edm::ProductHolderBase::setProductDeleted().

ProducedProductHolder & realProduct_
void edm::AliasProductHolder::setProvenance_ ( std::shared_ptr< ProductProvenanceRetriever provRetriever,
ProcessHistory const &  ph,
ProductID const &  pid 
)
overrideprivatevirtual

Implements edm::ProductHolderBase.

Definition at line 424 of file ProductHolder.cc.

References edm::ProductHolderBase::productData(), edm::ProductData::prov_, edm::Provenance::setProcessHistory(), edm::Provenance::setProductID(), and edm::Provenance::setStore().

424  {
426  productData().prov_.setStore(provRetriever);
428  }
Provenance prov_
Definition: ProductData.h:47
ProductData const & productData() const
Definition: ProductHolder.h:40
tuple pid
Definition: sysUtil.py:22
void setProductID(ProductID const &pid)
Definition: Provenance.h:82
void setStore(std::shared_ptr< ProductProvenanceRetriever > store) const
Definition: Provenance.h:74
void setProcessHistory(ProcessHistory const &ph)
Definition: Provenance.h:76
bool edm::AliasProductHolder::singleProduct_ ( ) const
overrideprivatevirtual

Implements edm::ProductHolderBase.

Definition at line 443 of file ProductHolder.cc.

443  {
444  return true;
445  }
ProductStatus& edm::AliasProductHolder::status ( void  ) const
inline

Definition at line 386 of file ProductHolder.h.

References realProduct_, and edm::ProducedProductHolder::status().

386 {return realProduct_.status();}
ProductStatus & status() const
ProducedProductHolder & realProduct_
virtual void edm::AliasProductHolder::swap_ ( ProductHolderBase rhs)
inlineoverrideprivatevirtual

Implements edm::ProductHolderBase.

Definition at line 388 of file ProductHolder.h.

References bd_, realProduct_, edm::ProductHolderBase::swap(), and std::swap().

388  {
389  AliasProductHolder& other = dynamic_cast<AliasProductHolder&>(rhs);
390  realProduct_.swap(other.realProduct_);
391  std::swap(bd_, other.bd_);
392  }
AliasProductHolder(std::shared_ptr< BranchDescription const > bd, ProducedProductHolder &realProduct)
void swap(edm::DataFrameContainer &lhs, edm::DataFrameContainer &rhs)
void swap(ProductHolderBase &rhs)
std::shared_ptr< BranchDescription const > bd_
ProducedProductHolder & realProduct_

Member Data Documentation

std::shared_ptr<BranchDescription const> edm::AliasProductHolder::bd_
private

Definition at line 429 of file ProductHolder.h.

Referenced by branchDescription_(), resetBranchDescription_(), and swap_().

ProducedProductHolder& edm::AliasProductHolder::realProduct_
private