CMS 3D CMS Logo

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

#include <ProductHolder.h>

Inheritance diagram for edm::SourceProductHolder:
edm::ProducedProductHolder edm::ProductHolderBase

Public Member Functions

 SourceProductHolder (boost::shared_ptr< ConstBranchDescription > bd)
 
virtual ~SourceProductHolder ()
 
- Public Member Functions inherited from edm::ProducedProductHolder
 ProducedProductHolder ()
 
void producerCompleted ()
 
void producerStarted ()
 
ProductStatusstatus () const
 
virtual ~ProducedProductHolder ()
 
- Public Member Functions inherited from edm::ProductHolderBase
ConstBranchDescription const & branchDescription () const
 
void checkType (WrapperOwningHolder const &prod) const
 
void deleteProduct ()
 
void mergeProduct (WrapperOwningHolder const &edp, ProductProvenance &productProvenance)
 
void mergeProduct (WrapperOwningHolder const &edp) const
 
void mergeTheProduct (WrapperOwningHolder const &edp) const
 
std::string const & moduleLabel () const
 
bool onDemand () const
 
ProductHolderBaseoperator= (ProductHolderBase const &)=delete
 
std::string const & processName () const
 
boost::shared_ptr< void const > product () 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 (WrapperOwningHolder const &edp, ProductProvenance const &productProvenance)
 
void putProduct (WrapperOwningHolder const &edp) const
 
void reallyCheckType (WrapperOwningHolder const &prod) const
 
void resetBranchDescription (boost::shared_ptr< ConstBranchDescription > bd)
 
void resetProductData ()
 
void resetStatus ()
 
std::string const & resolvedModuleLabel () const
 
ProductData const * resolveProduct (ResolveStatus &resolveStatus, bool skipCurrentProcess) const
 
void setPrincipal (Principal *principal)
 
void setProcessHistoryID (ProcessHistoryID const &phid)
 
void setProductDeleted ()
 
void setProductProvenance (ProductProvenance const &prov) const
 
void setProvenance (boost::shared_ptr< BranchMapper > mapper, ProcessHistoryID const &phid, ProductID const &pid)
 
bool singleProduct () const
 
void swap (ProductHolderBase &rhs)
 
void throwProductDeletedException () const
 
WrapperHolder wrapper () const
 
void write (std::ostream &os) const
 
virtual ~ProductHolderBase ()
 

Private Member Functions

virtual ProductData const & getProductData () const
 
virtual ProductDatagetProductData ()
 
virtual bool onDemand_ () const
 
virtual void resetStatus_ ()
 
virtual ProductData const * resolveProduct_ (ResolveStatus &resolveStatus, bool skipCurrentProcess) const
 
virtual ProductStatusstatus_ () const
 
virtual void swap_ (ProductHolderBase &rhs)
 

Private Attributes

ProductData productData_
 
ProductStatus theStatus_
 

Additional Inherited Members

- Public Types inherited from edm::ProducedProductHolder
enum  ProductStatus {
  Present = 0, NotRun = 3, NotCompleted = 4, NotPut = 5,
  UnscheduledNotRun = 6, ProductDeleted =7, Uninitialized = 0xff
}
 
- Public Types inherited from edm::ProductHolderBase
enum  ResolveStatus { ProductFound, ProductNotFound, Ambiguous }
 

Detailed Description

Definition at line 358 of file ProductHolder.h.

Constructor & Destructor Documentation

edm::SourceProductHolder::SourceProductHolder ( boost::shared_ptr< ConstBranchDescription bd)
inlineexplicit
edm::SourceProductHolder::~SourceProductHolder ( )
virtual

Definition at line 34 of file ProductHolder.cc.

34 {}

Member Function Documentation

virtual ProductData const& edm::SourceProductHolder::getProductData ( ) const
inlineprivatevirtual

Implements edm::ProductHolderBase.

Definition at line 371 of file ProductHolder.h.

References productData_.

371 {return productData_;}
virtual ProductData& edm::SourceProductHolder::getProductData ( )
inlineprivatevirtual

Implements edm::ProductHolderBase.

Definition at line 372 of file ProductHolder.h.

References productData_.

372 {return productData_;}
virtual bool edm::SourceProductHolder::onDemand_ ( ) const
inlineprivatevirtual

Implements edm::ProductHolderBase.

Definition at line 370 of file ProductHolder.h.

370 {return false;}
virtual void edm::SourceProductHolder::resetStatus_ ( )
inlineprivatevirtual
ProductData const * edm::SourceProductHolder::resolveProduct_ ( ResolveStatus resolveStatus,
bool  skipCurrentProcess 
) const
privatevirtual

Implements edm::ProductHolderBase.

Definition at line 72 of file ProductHolder.cc.

References edm::ProductHolderBase::product(), productData_, edm::ProductHolderBase::ProductFound, edm::ProductHolderBase::ProductNotFound, edm::ProductHolderBase::productWasDeleted(), edm::ProductHolderBase::throwProductDeletedException(), and edm::ProductHolderBase::wrapper().

72  {
73  if (!skipCurrentProcess) {
74  if(productWasDeleted()) {
76  }
77  if(product() && wrapper().isPresent()) {
78  resolveStatus = ProductFound;
79  return &productData_;
80  }
81  }
82  resolveStatus = ProductNotFound;
83  return nullptr;
84  }
boost::shared_ptr< void const > product() const
Definition: ProductHolder.h:81
bool productWasDeleted() const
Definition: ProductHolder.h:78
void throwProductDeletedException() const
WrapperHolder wrapper() const
Definition: ProductHolder.h:84
virtual ProductStatus& edm::SourceProductHolder::status_ ( ) const
inlineprivatevirtual

Implements edm::ProducedProductHolder.

Definition at line 373 of file ProductHolder.h.

References theStatus_.

373 {return theStatus_;}
virtual void edm::SourceProductHolder::swap_ ( ProductHolderBase rhs)
inlineprivatevirtual

Implements edm::ProductHolderBase.

Definition at line 363 of file ProductHolder.h.

References productData_, edm::swap(), std::swap(), and theStatus_.

363  {
364  SourceProductHolder& other = dynamic_cast<SourceProductHolder&>(rhs);
365  edm::swap(productData_, other.productData_);
366  std::swap(theStatus_, other.theStatus_);
367  }
void swap(Association< C > &lhs, Association< C > &rhs)
Definition: Association.h:117
void swap(edm::DataFrameContainer &lhs, edm::DataFrameContainer &rhs)
SourceProductHolder(boost::shared_ptr< ConstBranchDescription > bd)

Member Data Documentation

ProductData edm::SourceProductHolder::productData_
private

Definition at line 375 of file ProductHolder.h.

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

ProductStatus edm::SourceProductHolder::theStatus_
mutableprivate

Definition at line 376 of file ProductHolder.h.

Referenced by resetStatus_(), status_(), and swap_().