23 std::shared_ptr<TriggerResultInserter> inserter,
26 std::shared_ptr<ModuleRegistry> modReg,
27 std::vector<std::string>
const& iModulesToUse,
32 std::shared_ptr<ActivityRegistry> areg,
33 std::shared_ptr<ProcessConfiguration const> processConfiguration,
35 : actReg_(areg), processContext_(processContext), numberOfConcurrentLumis_(prealloc.numberOfLuminosityBlocks()) {
38 for (
unsigned int i = 0;
i < nManagers; ++
i) {
44 if (modpset !=
nullptr) {
50 wm.addToAllWorkers(wm.getWorker(*modpset, pregistry, &prealloc, processConfiguration,
moduleLabel));
55 inserter->doPreallocate(prealloc);
58 inserter, inserter->moduleDescription(), &
actions));
59 results_inserter->setActivityRegistry(
actReg_);
60 wm.addToAllWorkers(results_inserter.get());
65 for (
auto& pathStatusInserter : pathStatusInserters) {
66 std::shared_ptr<PathStatusInserter> inserterPtr =
get_underlying(pathStatusInserter);
67 inserterPtr->doPreallocate(prealloc);
72 workerPtr->setActivityRegistry(
actReg_);
73 wm.addToAllWorkers(workerPtr.get());
78 for (
auto& endPathStatusInserter : endPathStatusInserters) {
79 std::shared_ptr<EndPathStatusInserter> inserterPtr =
get_underlying(endPathStatusInserter);
80 inserterPtr->doPreallocate(prealloc);
83 inserterPtr, inserterPtr->moduleDescription(), &
actions));
84 workerPtr->setActivityRegistry(
actReg_);
85 wm.addToAllWorkers(workerPtr.get());
97 workerManagers_[0].beginJob(iRegistry, iESIndices, processBlockHelperBase);
103 for (
auto const& worker : wm.allWorkers()) {
104 if (worker->description()->moduleLabel() == iLabel) {
109 if (
nullptr ==
found) {
120 wm.deleteModuleIfExists(iLabel);
125 std::vector<ModuleDescription const*>
result;
void replaceModule(maker::ModuleHolder *iMod, std::string const &iLabel)
clone the type of module with label iLabel but configure with iPSet.
std::vector< WorkerManager > workerManagers_
roAction_t actions[nactions]
virtual void replaceModuleFor(Worker *) const =0
AllWorkers const & allWorkers() const
returns the collection of pointers to workers
void deleteModule(std::string const &iLabel)
Delete the module with label iLabel.
std::vector< ModuleDescription const * > getAllModuleDescriptions() const
GlobalSchedule(std::shared_ptr< TriggerResultInserter > inserter, std::vector< edm::propagate_const< std::shared_ptr< PathStatusInserter >>> &pathStatusInserters, std::vector< edm::propagate_const< std::shared_ptr< EndPathStatusInserter >>> &endPathStatusInserters, std::shared_ptr< ModuleRegistry > modReg, std::vector< std::string > const &modulesToUse, ParameterSet &proc_pset, ProductRegistry &pregistry, PreallocationConfiguration const &prealloc, ExceptionToActionTable const &actions, std::shared_ptr< ActivityRegistry > areg, std::shared_ptr< ProcessConfiguration const > processConfiguration, ProcessContext const *processContext)
std::shared_ptr< Worker > WorkerPtr
void endJob(ExceptionCollector &collector)
unsigned int numberOfRuns() const
std::shared_ptr< ActivityRegistry > actReg_
unsigned int numberOfLuminosityBlocks() const
constexpr T & get_underlying(propagate_const< T > &)
void beginJob(ProductRegistry const &, eventsetup::ESRecordsToProxyIndices const &, ProcessBlockHelperBase const &)
ParameterSet * getPSetForUpdate(std::string const &name, bool &isTracked)
std::vector< edm::propagate_const< WorkerPtr > > extraWorkers_