10 #include "cetlib/container_algorithms.h" 33 check_for_duplicate_Assns(std::set<art::TypeLabel>
const& typeLabels)
35 std::map<std::string, std::set<std::string>> instanceToFriendlyNames;
36 for (
auto const& tl : typeLabels) {
37 auto const& productInstanceName = tl.productInstanceName();
38 auto result = instanceToFriendlyNames[productInstanceName].emplace(
39 tl.friendlyClassName());
42 "check_for_duplicate_Assns: ")
43 <<
"An attempt has been made to call the equivalent of\n\n" 44 <<
" produces<" << tl.className() <<
">(\"" << productInstanceName
46 <<
"which results in a prepared (\"friendly\") name of:\n\n" 47 <<
" " << *result.first <<
"\n\n" 48 <<
"That friendly name has already been registered for this module.\n" 49 <<
"Please check to make sure that produces<> has not already been\n" 50 <<
"called for an Assns<> with reversed template arguments. Such\n" 51 <<
"behavior is not supported. Contact artists@fnal.gov for " 67 back_inserter(productsToRegister),
68 [](
auto const& pr) {
return pr.second; });
80 productsToRegister.push_back(pd);
81 descriptions.push_back(std::move(pd));
void registerProducts(MasterProductRegistry &mpr, ProductDescriptions &productsToRegister, ModuleDescription const &md)
void updateFromModule(std::unique_ptr< ProductList > &&)
std::vector< BranchDescription > ProductDescriptions
std::unique_ptr< ProductList > productList_
cet::coded_exception< errors::ErrorCodes, ExceptionDetail::translate > Exception
std::array< std::set< TypeLabel >, NumBranchTypes > typeLabelList_
void addProductsFromModule(ProductDescriptions &&)