1 #ifndef art_Framework_Core_ProductRegistryHelper_h 2 #define art_Framework_Core_ProductRegistryHelper_h 33 #include "cetlib/exempt_ptr.h" 34 #include "cetlib_except/exception.h" 41 class MasterProductRegistry;
42 class ModuleDescription;
43 class ProductRegistryHelper;
55 <<
"In particular, underscores are not permissible anywhere in the " 57 "class name, including namespaces.\n";
62 verifyModuleLabel(std::string
const& ml)
97 template <
typename P, BranchType B = InEvent>
98 void produces(std::string
const& instanceName = {},
105 template <
typename P, BranchType B>
107 std::string
const& instanceName = {});
109 template <BranchType B>
110 std::set<TypeLabel>
const&
121 if (!result.second) {
123 <<
"The module being constructed attempted to " 124 <<
"register conflicting products with:\n" 128 return *result.first;
139 template <
typename P, art::BranchType B>
145 TypeID const productType{
typeid(P)};
153 template <
typename P, art::BranchType B>
156 std::string
const& instanceName)
158 verifyModuleLabel(emulatedModule);
160 TypeID const productType{
typeid(P)};
void productList(ProductList *p)
std::string const & productInstanceName() const
void verifyFriendlyClassName(std::string const &fcn)
void registerProducts(MasterProductRegistry &mpr, ProductDescriptions &productsToRegister, ModuleDescription const &md)
void produces(std::string const &instanceName={}, Persistable const persistable=Persistable::Yes)
std::map< BranchKey, BranchDescription > ProductList
std::vector< BranchDescription > ProductDescriptions
TypeLabel const & reconstitutes(std::string const &modLabel, std::string const &instanceName={})
bool checkInstanceName(std::string const &instanceName, std::string &errMsg)
std::unique_ptr< ProductList > productList_
cet::coded_exception< errors::ErrorCodes, ExceptionDetail::translate > Exception
bool checkFriendlyName(std::string const &friendlyName, std::string &errMsg)
std::string friendlyClassName() const
TypeLabel const & insertOrThrow(BranchType const bt, TypeLabel const &tl)
std::set< TypeLabel > const & expectedProducts() const
std::array< std::set< TypeLabel >, NumBranchTypes > typeLabelList_
bool checkModuleLabel(std::string const &moduleLabel, std::string &errMsg)
void verifyInstanceName(std::string const &in)