23 class CallbackWrapper {
29 : prod_(iProd), callback_(iCallback), reg_(iReg), mdesc_(iDesc), lastSize_(iProd->
typeLabelList().size()) {}
39 if (lastSize_ != plist.size()) {
40 ProducerBase::TypeLabelList::const_iterator pStart = plist.begin();
41 advance(pStart, lastSize_);
43 lastSize_ = plist.size();
49 std::function<void(BranchDescription const&)> callback_;
52 unsigned int lastSize_;
64 bool isListener =
false;
85 auto range = iIndicies.equal_range(moduleLabel);
86 putIndicies_[iBranchType].reserve(iIndicies.count(moduleLabel));
87 for (
auto it = range.first; it != range.second; ++it) {
88 putIndicies_[iBranchType].push_back(std::get<2>(it->second));
90 for (
auto const& tl : plist) {
91 if (
convertToBranchType(tl.transition_) == iBranchType and (tl.typeID_ == *std::get<0>(it->second)) and
92 (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)