1 #ifndef DataFormats_Provenance_ProductRegistry_h 2 #define DataFormats_Provenance_ProductRegistry_h 26 #include <string_view> 33 class ProductResolverIndexHelper;
59 void setFrozen(
bool initializeLookupInfo =
true);
61 void setFrozen(std::set<TypeID>
const& productTypesConsumed,
62 std::set<TypeID>
const& elementTypesConsumed,
101 template <
typename T>
106 itEntry != itEntryEnd;
108 if (itEntry->second.present()) {
109 iFunc(itEntry->second);
115 void print(std::ostream& os)
const;
138 std::string_view productInstanceName)
const;
175 std::set<TypeID>
const* elementTypesConsumed,
178 std::map<TypeID, TypeID>
const& containedTypeMap,
179 std::map<
TypeID, std::vector<TypeID>>
const& containedTypeToBaseTypesMap);
182 std::set<TypeID>
const* elementTypesConsumed,
183 std::map<TypeID, TypeID>
const& containedTypeMap,
184 std::map<
TypeID, std::vector<TypeID>>& containedTypeToBaseTypesMap);
199 return a.productList() ==
b.productList();
constexpr bool operator==(ELseverityLevel const &e1, ELseverityLevel const &e2) noexcept
std::vector< BranchDescription const * > allBranchDescriptions() const
void initializeTransients()
void setProductProduced(BranchType branchType)
unsigned int ProductResolverIndex
ProductList const & productList() const
std::map< BranchKey, BranchDescription const > ConstProductList
std::map< BranchKey, BranchDescription > ProductList
std::vector< std::string > aliasToModules(KindOfType kindOfType, TypeID const &type, std::string_view moduleLabel, std::string_view productInstanceName) const
void addElementTypesForAliases(std::set< TypeID > const *elementTypesConsumed, std::map< TypeID, TypeID > const &containedTypeMap, std::map< TypeID, std::vector< TypeID >> const &containedTypeToBaseTypesMap)
void addLabelAlias(BranchDescription const &productdesc, std::string const &labelAlias, std::string const &instanceAlias)
AliasToOriginalVector aliasToOriginal_
virtual void addCalled(BranchDescription const &, bool iFromListener)
bool anyProductProduced() const
void initializeLookupTables(std::set< TypeID > const *productTypesConsumed, std::set< TypeID > const *elementTypesConsumed, std::string const *processName)
bool productProduced(BranchType branchType) const
void setUnscheduledProducts(std::set< std::string > const &unscheduledLabels)
std::vector< std::string > allBranchNames() const
ProductResolverIndex & nextIndexValue(BranchType branchType)
virtual ~ProductRegistry()
std::string merge(ProductRegistry const &other, std::string const &fileName, BranchDescription::MatchMode branchesMustMatch=BranchDescription::Permissive)
void addFromInput(edm::ProductRegistry const &)
void setFrozen(bool initializeLookupInfo=true)
constexpr bool operator!=(ELseverityLevel const &e1, ELseverityLevel const &e2) noexcept
void freezeIt(bool frozen=true)
void callForEachBranch(T const &iFunc)
std::vector< std::tuple< KindOfType, TypeID, std::string, std::string, std::string > > AliasToOriginalVector
ProductResolverIndex const & getNextIndexValue(BranchType branchType) const
std::array< ProductResolverIndex, NumBranchTypes > nextIndexValues_
std::shared_ptr< ProductResolverIndexHelper const > productLookup(BranchType branchType) const
ProductList::size_type size() const
std::array< edm::propagate_const< std::shared_ptr< ProductResolverIndexHelper > >, NumBranchTypes > productLookups_
ProductResolverIndex indexFrom(BranchID const &iID) const
void print(std::ostream &os) const
ProductList & productListUpdator()
bool anyProducts(BranchType const brType) const
void checkForDuplicateProcessName(BranchDescription const &desc, std::string const *processName) const
void updateFromInput(ProductList const &other)
void throwIfNotFrozen() const
std::array< bool, NumBranchTypes > productProduced_
void checkDictionariesOfConsumedTypes(std::set< TypeID > const *productTypesConsumed, std::set< TypeID > const *elementTypesConsumed, std::map< TypeID, TypeID > const &containedTypeMap, std::map< TypeID, std::vector< TypeID >> &containedTypeToBaseTypesMap)
std::ostream & operator<<(std::ostream &ost, const HLTGlobalStatus &hlt)
Formatted printout of trigger table.
void throwIfFrozen() const
void addProduct(BranchDescription const &productdesc, bool iFromListener=false)
std::map< BranchID, ProductResolverIndex > branchIDToIndex_
void copyProduct(BranchDescription const &productdesc)