24 class CallbackWrapper {
30 prod_(iProd), callback_(iCallback), reg_(iReg), mdesc_(iDesc),
41 if(lastSize_!=plist.size()){
42 ProducerBase::TypeLabelList::const_iterator pStart = plist.begin();
43 advance(pStart, lastSize_);
45 lastSize_ = plist.size();
51 std::function<void(BranchDescription const&)> callback_;
54 unsigned int lastSize_;
71 bool isListener =
false;
92 auto range = iIndicies.equal_range(moduleLabel);
93 putIndicies_[iBranchType].reserve(iIndicies.count(moduleLabel));
94 for(
auto it = range.first; it != range.second;++it) {
95 putIndicies_[iBranchType].push_back(std::get<2>(it->second));
97 for(
auto const& tl: plist) {
99 (tl.typeID_ == *std::get<0>(it->second)) and
100 (tl.productInstanceName_ == std::get<1>(it->second)) ) {
TypeLabelList const & typeLabelList() const
used by the fwk to register the list of products of this module
std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex >> ModuleToResolverIndicies
ProductRegistryHelper::TypeLabelList TypeLabelList
void registerProducts(ProducerBase *, ProductRegistry *, ModuleDescription const &)
static void addToRegistry(TypeLabelList::const_iterator const &iBegin, TypeLabelList::const_iterator const &iEnd, ModuleDescription const &iDesc, ProductRegistry &iReg, ProductRegistryHelper *iProd, bool iIsListener=false)
std::function< void(BranchDescription const &)> callWhenNewProductsRegistered_
std::array< std::vector< edm::ProductResolverIndex >, edm::NumBranchTypes > putIndicies_
void resolvePutIndicies(BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel)
~ProducerBase() noexcept(false) override
void callForEachBranch(T const &iFunc)
std::vector< edm::ProductResolverIndex > putTokenToResolverIndex_
std::function< void(BranchDescription const &)> registrationCallback() const
used by the fwk to register list of products
constexpr BranchType convertToBranchType(Transition iValue)