1 #ifndef FWCore_Framework_Path_h 2 #define FWCore_Framework_Path_h 34 class EventTransitionInfo;
35 class ModuleDescription;
36 class PathStatusInserter;
54 std::shared_ptr<ActivityRegistry> reg,
56 std::atomic<bool>* stopProcessEvent,
65 typename T::TransitionInfoType
const&,
68 typename T::Context
const*);
111 std::shared_ptr<ActivityRegistry>
const actReg_;
148 unsigned int iModuleIndex,
153 oneapi::tbb::task_group& iGroup);
159 oneapi::tbb::task_group& iGroup);
163 template <
typename T>
164 class PathSignalSentry {
170 : a_(
a), nwrwue_(nwrwue), state_(
state), pathContext_(pathContext) {
172 T::prePathSignal(a_, pathContext_);
174 ~PathSignalSentry() {
175 HLTPathStatus
status(state_, nwrwue_);
177 T::postPathSignal(a_,
status, pathContext_);
184 PathContext
const* pathContext_;
188 template <
typename T>
190 typename T::TransitionInfoType
const&
info,
193 typename T::Context
const*
context) {
Worker const * getWorker(size_type i) const
bool handleWorkerFailure(cms::Exception &e, int nwrwue, bool isEvent, bool begin, BranchType branchType, ModuleDescription const &, std::string const &id) const
int timesPassed(size_type i) const
std::atomic< unsigned int > modulesToRun_
void recordStatus(int nwrwue, hlt::HLTState state)
roAction_t actions[nactions]
std::vector< WorkerInPath > WorkersInPath
void threadsafe_setFailedModuleInfo(int nwrwue, std::exception_ptr)
WorkersInPath::size_type size_type
HLTState
status of a trigger path
void runNextWorkerAsync(unsigned int iNextModuleIndex, EventTransitionInfo const &, ServiceToken const &, StreamID const &, StreamContext const *, oneapi::tbb::task_group &iGroup)
WaitingTaskList waitingTasks_
void setPathStatusInserter(PathStatusInserter *pathStatusInserter, Worker *pathStatusInserterWorker)
void workerFinished(std::exception_ptr const *, unsigned int iModuleIndex, EventTransitionInfo const &, ServiceToken const &, StreamID const &, StreamContext const *, oneapi::tbb::task_group &iGroup)
int timesFailed(size_type i) const
Path & operator=(Path const &)=delete
int timesExcept(size_type i) const
void setEarlyDeleteHelpers(std::map< const Worker *, EarlyDeleteHelper *> const &)
std::shared_ptr< HLTGlobalStatus > TrigResPtr
void finished(std::exception_ptr, StreamContext const *, EventTransitionInfo const &, StreamID const &)
#define CMS_THREAD_GUARD(_var_)
void updateCounters(hlt::HLTState state)
std::atomic< bool > *const stopProcessingEvent_
int timesVisited(size_type i) const
ExceptionToActionTable const *const act_table_
static void exceptionContext(cms::Exception &ex, bool isEvent, bool begin, BranchType branchType, ModuleDescription const &, std::string const &id, PathContext const &)
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)
std::shared_ptr< ActivityRegistry > const actReg_
unsigned int bitPosition(size_type i) const
std::string const & pathName() const
std::string const & name() const
std::atomic< bool > stateLock_
void runAllModulesAsync(WaitingTaskHolder, typename T::TransitionInfoType const &, ServiceToken const &, StreamID const &, typename T::Context const *)
Worker * pathStatusInserterWorker_
void processOneOccurrenceAsync(WaitingTaskHolder, EventTransitionInfo const &, ServiceToken const &, StreamID const &, StreamContext const *)
PathStatusInserter * pathStatusInserter_