19 actionTable_(&actions),
22 lastSetupEventPrincipal_(
nullptr) {}
25 std::shared_ptr<ActivityRegistry> areg,
36 std::shared_ptr<ProcessConfiguration const> processConfiguration,
45 std::shared_ptr<ProcessConfiguration> processConfiguration,
47 std::set<std::string>& unscheduledLabels,
48 std::vector<std::string>& shouldBeUsedLabels) {
54 Worker* newWorker =
getWorker(pset, preg, prealloc, processConfiguration, label);
56 unscheduledLabels.insert(label);
61 shouldBeUsedLabels.push_back(label);
88 auto runModuleToIndicies = runLookup->indiciesForModulesInProcess(
processName);
89 auto lumiModuleToIndicies = lumiLookup->indiciesForModulesInProcess(
processName);
90 auto eventModuleToIndicies = eventLookup->indiciesForModulesInProcess(
processName);
92 worker->updateLookup(
InRun, *runLookup);
93 worker->updateLookup(
InLumi, *lumiLookup);
94 worker->updateLookup(
InEvent, *eventLookup);
95 worker->updateLookup(iESIndices);
96 worker->resolvePutIndicies(
InRun, runModuleToIndicies);
97 worker->resolvePutIndicies(
InLumi, lumiModuleToIndicies);
98 worker->resolvePutIndicies(
InEvent, eventModuleToIndicies);
107 worker->beginStream(iID, streamContext);
113 worker->endStream(iID, streamContext);
T getParameter(std::string const &) const
void addException(cms::Exception const &exception)
void setupUnscheduled(UnscheduledConfigurator const &)
roAction_t actions[nactions]
void endStream(StreamID iID, StreamContext &streamContext)
static const std::string kFilterType("EDFilter")
void beginJob(ProductRegistry const &iRegistry, eventsetup::ESRecordsToProxyIndices const &)
UnscheduledCallProducer unscheduled_
void addToUnscheduledWorkers(ParameterSet &pset, ProductRegistry &preg, PreallocationConfiguration const *prealloc, std::shared_ptr< ProcessConfiguration > processConfiguration, std::string label, std::set< std::string > &unscheduledLabels, std::vector< std::string > &shouldBeUsedLabels)
ExceptionToActionTable const * actionTable_
void const * lastSetupEventPrincipal_
Func for_all(ForwardSequence &s, Func f)
wrapper for std::for_each
void addWorker(Worker *aWorker)
void setupOnDemandSystem(Principal &principal, EventSetupImpl const &es)
void setEventSetup(EventSetupImpl const &iSetup)
void beginStream(StreamID iID, StreamContext &streamContext)
static const std::string kProducerType("EDProducer")
UnscheduledAuxiliary const & auxiliary() const
bool search_all(ForwardSequence const &s, Datum const &d)
std::shared_ptr< ProductResolverIndexHelper const > productLookup(BranchType branchType) const
WorkerRegistry workerReg_
Worker * getWorker(WorkerParams const &p, std::string const &moduleLabel)
Retrieve the particular instance of the worker.
virtual Types moduleType() const =0
auto wrap(F iFunc) -> decltype(iFunc())
WorkerManager(std::shared_ptr< ActivityRegistry > actReg, ExceptionToActionTable const &actions)
Worker * getWorker(ParameterSet &pset, ProductRegistry &preg, PreallocationConfiguration const *prealloc, std::shared_ptr< ProcessConfiguration const > processConfiguration, std::string const &label)
void addToAllWorkers(Worker *w)