CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Private Attributes
edm::ProcessBlockPrincipal Class Reference

#include <ProcessBlockPrincipal.h>

Inheritance diagram for edm::ProcessBlockPrincipal:
edm::Principal edm::EDProductGetter

Public Member Functions

void fillProcessBlockPrincipal (std::string const &processName, DelayedReader *reader=nullptr)
 
unsigned int index () const
 
 ProcessBlockPrincipal (std::shared_ptr< ProductRegistry const >, ProcessConfiguration const &, bool isForPrimaryProcess=true)
 
std::string const & processName () const
 
void put (ProductResolverIndex index, std::unique_ptr< WrapperBase > edp) const
 
- Public Member Functions inherited from edm::Principal
void adjustIndexesAfterProductRegistryAddition ()
 
bool adjustToNewProductRegistry (ProductRegistry const &reg)
 
const_iterator begin () const
 
iterator begin ()
 
BranchType const & branchType () const
 
CacheIdentifier_t cacheIdentifier () const
 
void clearPrincipal ()
 
void deleteProduct (BranchID const &id) const
 
const_iterator end () const
 
iterator end ()
 
void fillPrincipal (DelayedReader *reader)
 
void fillPrincipal (ProcessHistoryID const &hist, ProcessHistory const *phr, DelayedReader *reader)
 
void fillPrincipal (std::string const &processNameOfBlock, DelayedReader *reader)
 
ProductData const * findProductByTag (TypeID const &typeID, InputTag const &tag, ModuleCallingContext const *mcc) const
 
void getAllProvenance (std::vector< Provenance const *> &provenances) const
 
void getAllStableProvenance (std::vector< StableProvenance const *> &provenances) const
 
BasicHandle getByLabel (KindOfType kindOfType, TypeID const &typeID, InputTag const &inputTag, EDConsumerBase const *consumes, SharedResourcesAcquirer *sra, ModuleCallingContext const *mcc) const
 
BasicHandle getByLabel (KindOfType kindOfType, TypeID const &typeID, std::string const &label, std::string const &instance, std::string const &process, EDConsumerBase const *consumes, SharedResourcesAcquirer *sra, ModuleCallingContext const *mcc) const
 
BasicHandle getByToken (KindOfType kindOfType, TypeID const &typeID, ProductResolverIndex index, bool skipCurrentProcess, bool &ambiguous, SharedResourcesAcquirer *sra, ModuleCallingContext const *mcc) const
 
ProductResolverBasegetModifiableProductResolver (BranchID const &oid)
 
ConstProductResolverPtr getProductResolver (BranchID const &oid) const
 
ConstProductResolverPtr getProductResolverByIndex (ProductResolverIndex const &oid) const noexcept
 
Provenance const & getProvenance (BranchID const &bid) const
 
StableProvenance const & getStableProvenance (BranchID const &bid) const
 
std::vector< unsigned int > const & lookupProcessOrder () const noexcept
 
void prefetchAsync (WaitingTaskHolder waitTask, ProductResolverIndex index, bool skipCurrentProcess, ServiceToken const &token, ModuleCallingContext const *mcc) const
 
 Principal (std::shared_ptr< ProductRegistry const > reg, std::shared_ptr< ProductResolverIndexHelper const > productLookup, ProcessConfiguration const &pc, BranchType bt, HistoryAppender *historyAppender, bool isForPrimaryProcess=true)
 
virtual unsigned int processBlockIndex (std::string const &processName) const
 
ProcessConfiguration const & processConfiguration () const
 
ProcessHistory const & processHistory () const
 
ProcessHistoryID const & processHistoryID () const
 
EDProductGetter const * prodGetter () const
 
ProductResolverIndexHelper const & productLookup () const
 
ProductRegistry const & productRegistry () const
 
void readAllFromSourceAndMergeImmediately (MergeableRunProductMetadata const *mergeableRunProductMetadata=nullptr)
 
DelayedReaderreader () const
 
void recombine (Principal &other, std::vector< BranchID > const &bids)
 
void setupUnscheduled (UnscheduledConfigurator const &)
 
size_t size () const
 
 ~Principal () override
 
- Public Member Functions inherited from edm::EDProductGetter
 EDProductGetter ()
 
 EDProductGetter (EDProductGetter const &)=delete
 
EDProductGetter const & operator= (EDProductGetter const &)=delete
 
unsigned int transitionIndex () const
 
virtual ~EDProductGetter ()
 

Private Member Functions

unsigned int transitionIndex_ () const final
 

Private Attributes

std::string processName_
 

Additional Inherited Members

- Public Types inherited from edm::Principal
typedef std::vector< BasicHandleBasicHandleVec
 
typedef unsigned long CacheIdentifier_t
 
typedef boost::filter_iterator< FilledProductPtr, ProductResolverCollection::const_iterator > const_iterator
 
typedef ProductResolverBase const * ConstProductResolverPtr
 
typedef boost::filter_iterator< FilledProductPtr, ProductResolverCollection::iterator > iterator
 
typedef std::string ProcessName
 
typedef ProcessHistory::const_iterator ProcessNameConstIterator
 
typedef std::vector< propagate_const< std::shared_ptr< ProductResolverBase > > > ProductResolverCollection
 
typedef std::shared_ptr< ProductResolverBaseSharedProductPtr
 
typedef ProductResolverCollection::size_type size_type
 
- Static Public Member Functions inherited from edm::EDProductGetter
static void assignEDProductGetter (EDProductGetter const *&)
 
static EDProductGetter const * switchProductGetter (EDProductGetter const *)
 These can only be used internally by the framework. More...
 
- Protected Member Functions inherited from edm::Principal
void addProduct_ (std::unique_ptr< ProductResolverBase > phb)
 
void addProductOrThrow (std::unique_ptr< ProductResolverBase > phb)
 
template<typename F >
void applyToResolvers (F iFunc)
 
ProductResolverBasegetExistingProduct (BranchID const &branchID)
 
ProductResolverBase const * getExistingProduct (BranchID const &branchID) const
 
ProductResolverBase const * getExistingProduct (ProductResolverBase const &phb) const
 
void put_ (BranchDescription const &bd, std::unique_ptr< WrapperBase > edp) const
 

Detailed Description

Author
W. David Dagenhart, created 19 March, 2020

Definition at line 22 of file ProcessBlockPrincipal.h.

Constructor & Destructor Documentation

◆ ProcessBlockPrincipal()

edm::ProcessBlockPrincipal::ProcessBlockPrincipal ( std::shared_ptr< ProductRegistry const >  reg,
ProcessConfiguration const &  pc,
bool  isForPrimaryProcess = true 
)

Definition at line 11 of file ProcessBlockPrincipal.cc.

14  : Principal(reg, reg->productLookup(InProcess), pc, InProcess, nullptr, isForPrimaryProcess) {}
Principal(std::shared_ptr< ProductRegistry const > reg, std::shared_ptr< ProductResolverIndexHelper const > productLookup, ProcessConfiguration const &pc, BranchType bt, HistoryAppender *historyAppender, bool isForPrimaryProcess=true)
Definition: Principal.cc:118

Member Function Documentation

◆ fillProcessBlockPrincipal()

void edm::ProcessBlockPrincipal::fillProcessBlockPrincipal ( std::string const &  processName,
DelayedReader reader = nullptr 
)

◆ index()

unsigned int edm::ProcessBlockPrincipal::index ( ) const
inline

Definition at line 35 of file ProcessBlockPrincipal.h.

Referenced by put().

35 { return 0; }

◆ processName()

std::string const& edm::ProcessBlockPrincipal::processName ( ) const
inline

◆ put()

void edm::ProcessBlockPrincipal::put ( ProductResolverIndex  index,
std::unique_ptr< WrapperBase edp 
) const

Definition at line 21 of file ProcessBlockPrincipal.cc.

References runTheMatrix::const, edm::Principal::getProductResolverByIndex(), index(), and eostools::move().

Referenced by edm::ProcessBlock::commit_().

21  {
22  auto phb = getProductResolverByIndex(index);
23  dynamic_cast<ProductPutterBase const*>(phb)->putProduct(std::move(edp));
24  }
ConstProductResolverPtr getProductResolverByIndex(ProductResolverIndex const &oid) const noexcept
Definition: Principal.cc:566
def move(src, dest)
Definition: eostools.py:511

◆ transitionIndex_()

unsigned int edm::ProcessBlockPrincipal::transitionIndex_ ( ) const
finalprivatevirtual

Implements edm::EDProductGetter.

Definition at line 26 of file ProcessBlockPrincipal.cc.

26  {
27  // Concurrent ProcessBlocks does not make any sense so just always
28  // return 0 here.
29  return 0;
30  }

Member Data Documentation

◆ processName_

std::string edm::ProcessBlockPrincipal::processName_
private

Definition at line 40 of file ProcessBlockPrincipal.h.

Referenced by fillProcessBlockPrincipal(), and processName().