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;
43 template<
typename T>
class ProducingModuleAdaptorBase;
46 namespace producerbasehelper{
77 callWhenNewProductsRegistered_ =
func;
81 std::tuple<edm::TypeID const*, const char*, edm::ProductResolverIndex>>;
82 void resolvePutIndicies(
BranchType iBranchType,
84 std::string
const& moduleLabel);
87 return putIndicies_[iBranchType];
90 std::vector<edm::ProductResolverIndex>
const&
92 return putTokenToResolverIndex_;
106 template<
typename P>
111 template<
typename P,
typename I>
void commit_(P &iPrincipal, I *iID)
std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex >> ModuleToResolverIndicies
ProductRegistryHelper::TypeLabelList TypeLabelList
std::vector< edm::ProductResolverIndex > const & putTokenIndexToProductResolverIndex() 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
std::vector< TypeLabelItem > TypeLabelList
const std::complex< double > I
std::vector< edm::ProductResolverIndex > putTokenToResolverIndex_
std::pair< OmniClusterRef, TrackingParticleRef > P
void commit_(P &iPrincipal)