1 #ifndef FWCore_Framework_Path_h 2 #define FWCore_Framework_Path_h 35 class ModuleDescription;
36 class PathStatusInserter;
38 class LuminosityBlockPrincipal;
53 WorkersInPath
const& workers,
56 std::shared_ptr<ActivityRegistry> reg,
58 std::atomic<bool>* stopProcessEvent,
65 StreamID const&,
typename T::Context
const*);
69 typename T::MyPrincipal
const&,
72 typename T::Context
const*);
98 Worker* pathStatusInserterWorker);
147 void finished(
int iModuleIndex,
bool iSucceeded, std::exception_ptr,
159 unsigned int iModuleIndex,
169 template <
typename T>
170 class PathSignalSentry {
179 ~PathSignalSentry() {
191 template <
typename T>
193 typename T::MyPrincipal
const&
p,
196 typename T::Context
const* context) {
198 worker.runWorkerAsync<
T>(task,
p,es,streamID,context);
202 template <
typename T>
204 StreamID const& streamID,
typename T::Context
const* context) {
215 bool should_continue =
true;
219 for(
auto j=i; j!=
end;++j) {
224 i !=
end && should_continue;
229 should_continue = i->runWorker<
T>(ep, es, streamID, context);
234 std::ostringstream ost;
237 i->getWorker()->description(), ost.str());
242 if (not should_continue) {
std::string const & pathName() const
std::unique_ptr< T, F > make_sentry(T *iObject, F iFunc)
NOTE: if iObject is null, then iFunc will not be called.
void recordStatus(int nwrwue, bool isEvent)
void handleEarlyFinish(EventPrincipal const &)
roAction_t actions[nactions]
int timesFailed(size_type i) const
std::vector< EarlyDeleteHelper * > earlyDeleteHelpers_
std::vector< WorkerInPath > WorkersInPath
WorkersInPath::size_type size_type
HLTState
status of a trigger path
int timesPassed(size_type i) const
void runNextWorkerAsync(unsigned int iNextModuleIndex, EventPrincipal const &, EventSetup const &, StreamID const &, StreamContext const *)
WaitingTaskList waitingTasks_
void setPathStatusInserter(PathStatusInserter *pathStatusInserter, Worker *pathStatusInserterWorker)
std::shared_ptr< ActivityRegistry > actReg_
void workerFinished(std::exception_ptr const *iException, unsigned int iModuleIndex, EventPrincipal const &iEP, EventSetup const &iES, StreamID const &iID, StreamContext const *iContext)
std::shared_ptr< HLTGlobalStatus > TrigResPtr
void processOneOccurrenceAsync(WaitingTask *, EventPrincipal const &, EventSetup const &, StreamID const &, StreamContext const *)
void handleEarlyFinish(LuminosityBlockPrincipal const &)
void handleEarlyFinish(RunPrincipal const &)
static void exceptionContext(cms::Exception &ex, bool isEvent, bool begin, BranchType branchType, ModuleDescription const &, std::string const &id, PathContext const &)
void finished(int iModuleIndex, bool iSucceeded, std::exception_ptr, StreamContext const *, EventPrincipal const &iEP, EventSetup const &iES, StreamID const &streamID)
void updateCounters(bool succeed, bool isEvent)
Path(int bitpos, std::string const &path_name, WorkersInPath const &workers, TrigResPtr trptr, ExceptionToActionTable const &actions, std::shared_ptr< ActivityRegistry > reg, StreamContext const *streamContext, std::atomic< bool > *stopProcessEvent, PathContext::PathType pathType)
int timesVisited(size_type i) const
bool handleWorkerFailure(cms::Exception &e, int nwrwue, bool isEvent, bool begin, BranchType branchType, ModuleDescription const &, std::string const &id)
void setEarlyDeleteHelpers(std::map< const Worker *, EarlyDeleteHelper * > const &)
void runAllModulesAsync(WaitingTask *, typename T::MyPrincipal const &, EventSetup const &, StreamID const &, typename T::Context const *)
ExceptionToActionTable const * act_table_
Path const & operator=(Path const &)=delete
std::string const & name() const
Worker const * getWorker(size_type i) const
auto wrap(F iFunc) -> decltype(iFunc())
int timesExcept(size_type i) const
std::atomic< bool > * stopProcessingEvent_
def branchType(schema, name)
Worker * pathStatusInserterWorker_
PathStatusInserter * pathStatusInserter_
void processOneOccurrence(typename T::MyPrincipal const &, EventSetup const &, StreamID const &, typename T::Context const *)