1 #ifndef FWCore_Framework_Path_h 2 #define FWCore_Framework_Path_h 34 class ModuleDescription;
36 class LuminosityBlockPrincipal;
51 WorkersInPath
const& workers,
54 std::shared_ptr<ActivityRegistry> reg,
56 std::atomic<bool>* stopProcessEvent,
63 StreamID const&,
typename T::Context
const*);
67 typename T::MyPrincipal
const&,
70 typename T::Context
const*);
141 void finished(
int iModuleIndex,
bool iSucceeded, std::exception_ptr,
150 unsigned int iModuleIndex,
160 template <
typename T>
161 class PathSignalSentry {
170 ~PathSignalSentry() {
182 template <
typename T>
184 typename T::MyPrincipal
const&
p,
187 typename T::Context
const* context) {
189 worker.runWorkerAsync<
T>(task,
p,es,streamID,context);
193 template <
typename T>
195 StreamID const& streamID,
typename T::Context
const* context) {
206 bool should_continue =
true;
210 for(
auto j=i; j!=
end;++j) {
215 i !=
end && should_continue;
220 should_continue = i->runWorker<
T>(ep, es, streamID, context);
225 std::ostringstream ost;
228 i->getWorker()->description(), ost.str());
233 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_
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 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
void finished(int iModuleIndex, bool iSucceeded, std::exception_ptr, StreamContext const *)
auto wrap(F iFunc) -> decltype(iFunc())
int timesExcept(size_type i) const
std::atomic< bool > * stopProcessingEvent_
def branchType(schema, name)
void processOneOccurrence(typename T::MyPrincipal const &, EventSetup const &, StreamID const &, typename T::Context const *)