23 std::shared_ptr<TriggerResultInserter> inserter,
25 std::vector<
edm::propagate_const<std::shared_ptr<EndPathStatusInserter>>>& endPathStatusInserters,
26 std::shared_ptr<ModuleRegistry> modReg,
27 std::vector<std::string>
const& iModulesToUse,
32 std::shared_ptr<ActivityRegistry> areg,
33 std::shared_ptr<ProcessConfiguration> processConfiguration,
35 : actReg_(areg), processContext_(processContext) {
40 for (
auto const& moduleLabel : iModulesToUse) {
43 if (modpset !=
nullptr) {
49 wm.addToAllWorkers(wm.getWorker(*modpset, pregistry, &prealloc, processConfiguration, moduleLabel));
54 inserter->doPreallocate(prealloc);
57 inserter, inserter->moduleDescription(), &
actions));
58 results_inserter->setActivityRegistry(
actReg_);
59 wm.addToAllWorkers(results_inserter.get());
64 for (
auto& pathStatusInserter : pathStatusInserters) {
65 std::shared_ptr<PathStatusInserter> inserterPtr =
get_underlying(pathStatusInserter);
66 inserterPtr->doPreallocate(prealloc);
71 workerPtr->setActivityRegistry(
actReg_);
72 wm.addToAllWorkers(workerPtr.get());
77 for (
auto& endPathStatusInserter : endPathStatusInserters) {
78 std::shared_ptr<EndPathStatusInserter> inserterPtr =
get_underlying(endPathStatusInserter);
79 inserterPtr->doPreallocate(prealloc);
82 inserterPtr, inserterPtr->moduleDescription(), &
actions));
83 workerPtr->setActivityRegistry(
actReg_);
84 wm.addToAllWorkers(workerPtr.get());
101 for (
auto const& worker : wm.allWorkers()) {
102 if (worker->description().moduleLabel() == iLabel) {
107 if (
nullptr == found) {
117 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
T & get_underlying(propagate_const< T > &)
AllWorkers const & allWorkers() const
returns the collection of pointers to workers
std::shared_ptr< Worker > WorkerPtr
void endJob(ExceptionCollector &collector)
unsigned int numberOfLuminosityBlocks() const
std::shared_ptr< ActivityRegistry > actReg_
std::vector< ModuleDescription const * > getAllModuleDescriptions() const
void beginJob(ProductRegistry const &, eventsetup::ESRecordsToProxyIndices 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 > processConfiguration, ProcessContext const *processContext)
ParameterSet * getPSetForUpdate(std::string const &name, bool &isTracked)
std::vector< edm::propagate_const< WorkerPtr > > extraWorkers_