16 std::shared_ptr<ActivityRegistry>
areg,
29 pathContext_(path_name, streamContext, bitpos, pathType) {
31 for (
auto& workerInPath :
workers_) {
37 timesRun_(r.timesRun_),
38 timesPassed_(r.timesPassed_),
39 timesFailed_(r.timesFailed_),
40 timesExcept_(r.timesExcept_),
45 act_table_(r.act_table_),
47 earlyDeleteHelpers_(r.earlyDeleteHelpers_),
48 pathContext_(r.pathContext_) {
50 for (
auto& workerInPath :
workers_) {
67 bool should_continue =
true;
76 should_continue =
false;
87 std::ostringstream ost;
88 ost <<
"If you wish to continue processing events after a " << pNF <<
" exception,\n" <<
89 "add \"SkipEvent = cms.untracked.vstring('ProductNotFound')\" to the \"options\" PSet in the configuration.\n";
97 return should_continue;
108 std::ostringstream ost;
110 ost <<
"Calling event method";
112 else if (begin && branchType ==
InRun) {
113 ost <<
"Calling beginRun";
115 else if (begin && branchType ==
InLumi) {
116 ost <<
"Calling beginLuminosityBlock";
118 else if (!begin && branchType ==
InLumi) {
119 ost <<
"Calling endLuminosityBlock";
121 else if (!begin && branchType ==
InRun) {
122 ost <<
"Calling endRun";
126 ost <<
"Calling unknown function";
131 ost <<
"Running path '" << pathContext.
pathName() <<
"'";
134 ost <<
"Processing ";
159 using std::placeholders::_1;
168 std::vector<EarlyDeleteHelper*>
temp;
169 temp.reserve(iWorkerToDeleter.size());
172 if(
found != iWorkerToDeleter.end()) {
173 temp.push_back(
found->second);
174 found->second->addedToPath();
177 std::vector<EarlyDeleteHelper*> tempCorrectSize(temp.begin(),temp.end());
184 helper->pathFinished(iEvent);
std::string const & pathName() const
void recordStatus(int nwrwue, bool isEvent)
void handleEarlyFinish(EventPrincipal const &)
static const std::string & codeToString(Code)
-----------— implementation details ---------------—
std::vector< EarlyDeleteHelper * > earlyDeleteHelpers_
std::vector< WorkerInPath > WorkersInPath
std::string const & moduleName() const
std::string const & category() const
exception_actions::ActionCodes find(const std::string &category) const
std::string const & moduleLabel() const
Func for_all(ForwardSequence &s, Func f)
wrapper for std::for_each
std::shared_ptr< HLTGlobalStatus > TrigResPtr
void addAdditionalInfo(std::string const &info)
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)
void addContext(std::string const &context)
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 &)
ExceptionToActionTable const * act_table_
Worker const * getWorker(size_type i) 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, PathContext::PathType pathType)
void printCmsExceptionWarning(char const *behavior, cms::Exception const &e)