1 #ifndef FWCore_Framework_WorkerManager_h
2 #define FWCore_Framework_WorkerManager_h
24 class ExceptionCollector;
28 class PreallocationConfiguration;
37 std::shared_ptr<ActivityRegistry> actReg,
44 std::set<std::string>& unscheduledLabels,
45 std::vector<std::string>& shouldBeUsedLabels);
49 template <
typename T,
typename U>
53 typename T::Context
const* topContext,
55 bool cleaningUpAfterException =
false);
93 template <
typename T,
typename U>
98 typename T::Context
const* topContext,
100 bool cleaningUpAfterException) {
110 unscheduled_->runNow<
T,U>(ep, es,streamID, topContext, context);
std::shared_ptr< UnscheduledCallProducer const > unscheduled() const
std::shared_ptr< UnscheduledCallProducer > & unscheduled()
void endStream(StreamID iID, StreamContext &streamContext)
void setOnDemandProducts(ProductRegistry &pregistry, std::set< std::string > const &unscheduledLabels) const
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)
void processOneOccurrence(typename T::MyPrincipal &principal, EventSetup const &eventSetup, StreamID streamID, typename T::Context const *topContext, U const *context, bool cleaningUpAfterException=false)
void addContextAndPrintException(char const *context, cms::Exception &ex, bool disablePrint)
void beginJob(ProductRegistry const &iRegistry)
edm::propagate_const< std::shared_ptr< UnscheduledCallProducer > > unscheduled_
std::string const & category() const
exception_actions::ActionCodes find(const std::string &category) const
ExceptionToActionTable const * actionTable_
std::vector< Worker * > AllWorkers
std::list< std::string > const & context() const
std::shared_ptr< T > & get_underlying_safe(propagate_const< std::shared_ptr< T >> &iP)
void beginStream(StreamID iID, StreamContext &streamContext)
AllWorkers const & allWorkers() const
WorkerRegistry workerReg_
The Registry of all workers that where requested Holds all instances of workers. In this implementati...
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)
ExceptionToActionTable const & actionTable() const
void setupOnDemandSystem(EventPrincipal &principal, EventSetup const &es)
void addToAllWorkers(Worker *w)
void printCmsExceptionWarning(char const *behavior, cms::Exception const &e)