#include <ProductRegistry.h>
Classes | |
struct | Transients |
Public Types | |
typedef std::map< BranchKey, BranchDescription const > | ConstProductList |
typedef std::map< BranchKey, BranchDescription > | ProductList |
Public Member Functions | |
void | addLabelAlias (BranchDescription const &productdesc, std::string const &labelAlias, std::string const &instanceAlias) |
void | addProduct (BranchDescription const &productdesc, bool iFromListener=false) |
std::vector< std::pair < std::string, std::string > > const & | aliasToOriginal () const |
std::vector< BranchDescription const * > | allBranchDescriptions () const |
std::vector< std::string > | allBranchNames () const |
bool | anyProductProduced () const |
bool | anyProducts (BranchType const brType) const |
template<typename T > | |
void | callForEachBranch (T const &iFunc) |
ConstProductList & | constProductList () |
void | copyProduct (BranchDescription const &productdesc) |
bool | frozen () const |
ProductHolderIndex const & | getNextIndexValue (BranchType branchType) const |
ProductHolderIndex | indexFrom (BranchID const &iID) const |
void | initializeTransients () |
std::string | merge (ProductRegistry const &other, std::string const &fileName, BranchDescription::MatchMode branchesMustMatch=BranchDescription::Permissive) |
std::vector< TypeID > const & | missingDictionaries () const |
std::vector< TypeID > & | missingDictionariesForUpdate () |
void | print (std::ostream &os) const |
ProductList const & | productList () const |
ProductList & | productListUpdator () |
std::shared_ptr < ProductHolderIndexHelper > const & | productLookup (BranchType branchType) const |
bool | productProduced (BranchType branchType) const |
ProductRegistry () | |
ProductRegistry (ProductList const &productList, bool toBeFrozen=true) | |
void | setFrozen (bool initializeLookupInfo=true) |
ProductList::size_type | size () const |
void | updateFromInput (ProductList const &other) |
void | updateFromInput (std::vector< BranchDescription > const &other) |
virtual | ~ProductRegistry () |
Private Member Functions | |
virtual void | addCalled (BranchDescription const &, bool iFromListener) |
void | freezeIt (bool frozen=true) |
void | initializeLookupTables () |
ProductHolderIndex & | nextIndexValue (BranchType branchType) |
void | setProductProduced (BranchType branchType) |
void | throwIfFrozen () const |
void | throwIfNotFrozen () const |
void | updateConstProductRegistry () |
Private Attributes | |
ProductList | productList_ |
Transients | transient_ |
author Stefano ARGIRO author Bill Tanenbaum
Definition at line 30 of file ProductRegistry.h.
typedef std::map<BranchKey, BranchDescription const> edm::ProductRegistry::ConstProductList |
Definition at line 44 of file ProductRegistry.h.
typedef std::map<BranchKey, BranchDescription> edm::ProductRegistry::ProductList |
Definition at line 33 of file ProductRegistry.h.
edm::ProductRegistry::ProductRegistry | ( | ) |
Definition at line 39 of file ProductRegistry.cc.
|
explicit |
Definition at line 78 of file ProductRegistry.cc.
References freezeIt().
|
inlinevirtual |
Definition at line 42 of file ProductRegistry.h.
|
privatevirtual |
Reimplemented in edm::SignallingProductRegistry.
Definition at line 176 of file ProductRegistry.cc.
Referenced by addLabelAlias(), and addProduct().
void edm::ProductRegistry::addLabelAlias | ( | BranchDescription const & | productdesc, |
std::string const & | labelAlias, | ||
std::string const & | instanceAlias | ||
) |
Definition at line 101 of file ProductRegistry.cc.
References addCalled(), edm::ProductRegistry::Transients::aliasToOriginal_, assert(), edm::BranchDescription::branchID(), edm::BranchID::isValid(), edm::BranchDescription::moduleLabel(), edm::BranchDescription::produced(), productList_, run_regression::ret, throwIfFrozen(), and transient_.
void edm::ProductRegistry::addProduct | ( | BranchDescription const & | productdesc, |
bool | iFromListener = false |
||
) |
Definition at line 85 of file ProductRegistry.cc.
References addCalled(), assert(), edm::errors::Configuration, Exception, edm::BranchDescription::processName(), edm::BranchDescription::produced(), productList_, run_regression::ret, and throwIfFrozen().
Referenced by edm::ProductRegistryHelper::addToRegistry().
|
inline |
Definition at line 122 of file ProductRegistry.h.
References edm::ProductRegistry::Transients::aliasToOriginal_, and transient_.
std::vector< BranchDescription const * > edm::ProductRegistry::allBranchDescriptions | ( | ) | const |
Definition at line 191 of file ProductRegistry.cc.
References productList(), query::result, and size().
Referenced by edm::ConstProductRegistry::allBranchDescriptions(), edm::RootFile::dropOnInput(), edm::SubProcess::selectProducts(), edm::OutputModule::selectProducts(), and edm::one::OutputModuleBase::selectProducts().
std::vector< std::string > edm::ProductRegistry::allBranchNames | ( | ) | const |
Definition at line 180 of file ProductRegistry.cc.
References productList(), query::result, and size().
Referenced by edm::ConstProductRegistry::allBranchNames().
|
inline |
Definition at line 112 of file ProductRegistry.h.
References edm::ProductRegistry::Transients::anyProductProduced_, and transient_.
Referenced by edm::ConstProductRegistry::anyProductProduced(), and edm::SubProcess::process().
bool edm::ProductRegistry::anyProducts | ( | BranchType const | brType | ) | const |
Definition at line 131 of file ProductRegistry.cc.
References productList_, and throwIfNotFrozen().
|
inline |
Definition at line 86 of file ProductRegistry.h.
References productList_.
Referenced by edm::ProducerBase::registerProducts(), edm::stream::EDAnalyzerBase::registerProductsAndCallbacks(), edm::EDAnalyzer::registerProductsAndCallbacks(), edm::one::EDAnalyzerBase::registerProductsAndCallbacks(), and edm::global::EDAnalyzerBase::registerProductsAndCallbacks().
|
inline |
Definition at line 101 of file ProductRegistry.h.
References edm::ProductRegistry::Transients::constProductList_, and transient_.
Referenced by initializeLookupTables(), and updateConstProductRegistry().
void edm::ProductRegistry::copyProduct | ( | BranchDescription const & | productdesc | ) |
Definition at line 117 of file ProductRegistry.cc.
References assert(), edm::combinable(), getDQMSummary::iter, relval_steps::k, edm::BranchDescription::produced(), productList_, and throwIfFrozen().
Referenced by edm::DaqProvenanceHelper::daqInit(), edm::LHEProvenanceHelper::LHEProvenanceHelper(), edm::RootFile::RootFile(), and updateFromInput().
|
inlineprivate |
Definition at line 162 of file ProductRegistry.h.
References frozen(), edm::ProductRegistry::Transients::frozen_, and transient_.
Referenced by ProductRegistry(), and setFrozen().
|
inline |
Definition at line 130 of file ProductRegistry.h.
References edm::ProductRegistry::Transients::frozen_, and transient_.
Referenced by freezeIt(), edm::StreamerInputSource::mergeIntoRegistry(), setFrozen(), throwIfFrozen(), and throwIfNotFrozen().
ProductHolderIndex const & edm::ProductRegistry::getNextIndexValue | ( | BranchType | branchType | ) | const |
Definition at line 352 of file ProductRegistry.cc.
References edm::ProductRegistry::Transients::eventNextIndexValue_, edm::InEvent, edm::InLumi, edm::ProductRegistry::Transients::lumiNextIndexValue_, edm::ProductRegistry::Transients::runNextIndexValue_, and transient_.
Referenced by initializeLookupTables(), and merge().
ProductHolderIndex edm::ProductRegistry::indexFrom | ( | BranchID const & | iID | ) | const |
Definition at line 337 of file ProductRegistry.cc.
References edm::ProductRegistry::Transients::branchIDToIndex_, edm::ProductHolderIndexInvalid, and transient_.
|
private |
Definition at line 271 of file ProductRegistry.cc.
References edm::ProductRegistry::Transients::branchIDToIndex_, constProductList(), edm::copy_all(), edm::ProductRegistry::Transients::eventNextIndexValue_, edm::productholderindexhelper::getContainedTypeFromWrapper(), getNextIndexValue(), cmsHarvester::index, edm::InEvent, edm::InLumi, edm::InRun, edm::eventsetup::heterocontainer::insert(), getDQMSummary::iter, relval_steps::key, edm::ProductRegistry::Transients::lumiNextIndexValue_, missingDictionariesForUpdate(), nextIndexValue(), productList_, productLookup(), edm::ProductRegistry::Transients::runNextIndexValue_, setProductProduced(), and transient_.
Referenced by setFrozen().
|
inline |
Definition at line 128 of file ProductRegistry.h.
References edm::ProductRegistry::Transients::reset(), and transient_.
std::string edm::ProductRegistry::merge | ( | ProductRegistry const & | other, |
std::string const & | fileName, | ||
BranchDescription::MatchMode | branchesMustMatch = BranchDescription::Permissive |
||
) |
Definition at line 216 of file ProductRegistry.cc.
References edm::ProductRegistry::Transients::branchIDToIndex_, alignCSCRings::e, getNextIndexValue(), i, j, edm::match(), nextIndexValue(), productList(), productList_, alignCSCRings::s, edm::BranchDescription::Strict, AlCaHLTBitMon_QueryRunRegistry::string, transient_, and updateConstProductRegistry().
Referenced by edm::StreamerInputSource::mergeIntoRegistry(), edm::RootInputFileSequence::nextFile(), and edm::RootInputFileSequence::previousFile().
|
inline |
Definition at line 114 of file ProductRegistry.h.
References edm::ProductRegistry::Transients::missingDictionaries_, and transient_.
|
inline |
Definition at line 118 of file ProductRegistry.h.
References edm::ProductRegistry::Transients::missingDictionaries_, and transient_.
Referenced by initializeLookupTables().
|
private |
Definition at line 359 of file ProductRegistry.cc.
References edm::ProductRegistry::Transients::eventNextIndexValue_, edm::InEvent, edm::InLumi, edm::ProductRegistry::Transients::lumiNextIndexValue_, edm::ProductRegistry::Transients::runNextIndexValue_, and transient_.
Referenced by initializeLookupTables(), and merge().
void edm::ProductRegistry::print | ( | std::ostream & | os | ) | const |
Definition at line 345 of file ProductRegistry.cc.
References productList_.
Referenced by edm::operator<<().
|
inline |
Definition at line 62 of file ProductRegistry.h.
References productList_.
Referenced by edm::Principal::adjustToNewProductRegistry(), allBranchDescriptions(), allBranchNames(), edm::ProductSelector::fillDroppedToKept(), merge(), edm::operator==(), edm::ConstProductRegistry::productList(), edm::ThinningProducer< Collection, Selector >::registerThinnedAssociations(), edm::RootFile::RootFile(), edm::SubProcess::selectProducts(), edm::OutputModule::selectProducts(), edm::one::OutputModuleBase::selectProducts(), edm::BranchIDListHelper::updateFromRegistry(), and edm::ProvenanceCheckerOutputModule::write().
|
inline |
Definition at line 67 of file ProductRegistry.h.
References productList_, and throwIfFrozen().
Referenced by edm::RootFile::dropOnInput(), edm::RootFile::RootFile(), edm::WorkerManager::setOnDemandProducts(), fwlite::internal::BranchMapReaderStrategyV8::updateFile(), fwlite::internal::BranchMapReaderStrategyV11::updateFile(), fwlite::internal::BranchMapReaderStrategyV17::updateFile(), fwlite::internal::BranchMapReaderStrategyV1::updateMap(), and ProvenanceDumper::work_().
std::shared_ptr< ProductHolderIndexHelper > const & edm::ProductRegistry::productLookup | ( | BranchType | branchType | ) | const |
Definition at line 143 of file ProductRegistry.cc.
References edm::ProductRegistry::Transients::eventProductLookup_, edm::InEvent, edm::InLumi, edm::ProductRegistry::Transients::lumiProductLookup_, edm::ProductRegistry::Transients::runProductLookup_, and transient_.
Referenced by edm::WorkerManager::beginJob(), edm::Schedule::changeModule(), initializeLookupTables(), and edm::EDConsumerBase::modulesWhoseProductsAreConsumed().
|
inline |
Definition at line 111 of file ProductRegistry.h.
References revisionDML::branchType(), edm::ProductRegistry::Transients::productProduced_, and transient_.
void edm::ProductRegistry::setFrozen | ( | bool | initializeLookupInfo = true | ) |
Definition at line 150 of file ProductRegistry.cc.
References edm::ProductRegistry::Transients::aliasToOriginal_, freezeIt(), frozen(), initializeLookupTables(), edm::sort_all(), and transient_.
Referenced by fwlite::internal::BranchMapReaderStrategyV8::updateFile(), fwlite::internal::BranchMapReaderStrategyV11::updateFile(), fwlite::internal::BranchMapReaderStrategyV17::updateFile(), and fwlite::internal::BranchMapReaderStrategyV1::updateMap().
|
inlineprivate |
Definition at line 157 of file ProductRegistry.h.
References edm::ProductRegistry::Transients::anyProductProduced_, revisionDML::branchType(), edm::ProductRegistry::Transients::productProduced_, and transient_.
Referenced by initializeLookupTables().
|
inline |
Definition at line 95 of file ProductRegistry.h.
References productList_.
Referenced by allBranchDescriptions(), and allBranchNames().
|
private |
Definition at line 160 of file ProductRegistry.cc.
References Exception, and frozen().
Referenced by addLabelAlias(), addProduct(), copyProduct(), and productListUpdator().
|
private |
Definition at line 168 of file ProductRegistry.cc.
References Exception, and frozen().
Referenced by anyProducts().
|
private |
Definition at line 262 of file ProductRegistry.cc.
References constProductList(), relval_steps::key, and productList_.
Referenced by merge().
void edm::ProductRegistry::updateFromInput | ( | ProductList const & | other | ) |
Definition at line 202 of file ProductRegistry.cc.
References copyProduct().
Referenced by edm::StreamerInputSource::mergeIntoRegistry(), and edm::RootInputFileSequence::RootInputFileSequence().
void edm::ProductRegistry::updateFromInput | ( | std::vector< BranchDescription > const & | other | ) |
Definition at line 209 of file ProductRegistry.cc.
References copyProduct().
|
private |
Definition at line 172 of file ProductRegistry.h.
Referenced by addLabelAlias(), addProduct(), anyProducts(), callForEachBranch(), copyProduct(), initializeLookupTables(), merge(), print(), productList(), productListUpdator(), size(), and updateConstProductRegistry().
|
private |
Definition at line 173 of file ProductRegistry.h.
Referenced by addLabelAlias(), aliasToOriginal(), anyProductProduced(), constProductList(), freezeIt(), frozen(), getNextIndexValue(), indexFrom(), initializeLookupTables(), initializeTransients(), merge(), missingDictionaries(), missingDictionariesForUpdate(), nextIndexValue(), productLookup(), productProduced(), setFrozen(), and setProductProduced().