1 #ifndef FWCore_Framework_ProducerBase_h
2 #define FWCore_Framework_ProducerBase_h
15 #include <unordered_map>
21 class BranchDescription;
22 class ModuleDescription;
23 class ProductRegistry;
39 template<
typename T>
class ProducingModuleAdaptorBase;
42 namespace producerbasehelper{
76 std::unordered_multimap<std::string, edm::ProductResolverIndex>
const& iIndicies,
96 template<
typename P,
typename L,
typename I>
void callWhenNewProductsRegistered(std::function< void(BranchDescription const &)> const &func)
std::list< TypeLabelItem > TypeLabelList
ProductRegistryHelper::TypeLabelList TypeLabelList
void registerProducts(ProducerBase *, ProductRegistry *, ModuleDescription const &)
std::function< void(BranchDescription const &)> callWhenNewProductsRegistered_
std::array< std::vector< edm::ProductResolverIndex >, edm::NumBranchTypes > putIndicies_
std::vector< edm::ProductResolverIndex > const & indiciesForPutProducts(BranchType iBranchType) const
TypeLabelList & typeLabelList()
used by the fwk to register the list of products of this module
void resolvePutIndicies(BranchType iBranchType, std::unordered_multimap< std::string, edm::ProductResolverIndex > const &iIndicies, std::string const &moduleLabel)
TypeLabelItem const & produces()
declare what type of product will make and with which optional label
const std::complex< double > I
void commit_(P &iPrincipal, L *iList, I *iID)
std::function< void(BranchDescription const &)> registrationCallback() const
used by the fwk to register list of products
void commit_(P &iPrincipal)
volatile std::atomic< bool > shutdown_flag false
virtual ~ProducerBase() noexcept(false)