1 #ifndef FWCore_Framework_Path_h
2 #define FWCore_Framework_Path_h
23 #include "boost/shared_ptr.hpp"
36 class LuminosityBlockPrincipal;
51 boost::shared_ptr<ActivityRegistry> reg,
64 return std::pair<double, double>(0., 0.);
67 std::pair<double, double>
timeCpuReal(
unsigned int const i)
const {
118 std::string
const&
id);
124 std::string
const&
id);
134 template <
typename T>
135 class PathSignalSentry {
138 std::string
const&
name,
141 a_(a), name_(name), nwrwue_(nwrwue), state_(state) {
142 if (a_) T::prePathSignal(a_, name_);
144 ~PathSignalSentry() {
145 HLTPathStatus
status(state_, nwrwue_);
146 if(a_) T::postPathSignal(a_, name_,
status);
150 std::string
const& name_;
156 template <
typename T>
173 bool should_continue =
true;
180 i !=
end && should_continue;
183 assert (static_cast<int>(idx) == nwrwue);
186 cpc.
activate(idx,
i->getWorker()->descPtr());
187 should_continue =
i->runWorker<
T>(ep, es, &cpc);
198 std::ostringstream ost;
200 should_continue =
handleWorkerFailure(ex, nwrwue, T::isEvent_, T::begin_, T::branchType_, cpc, ost.str());
203 if (not should_continue) {
Path(int bitpos, std::string const &path_name, WorkersInPath const &workers, TrigResPtr trptr, ActionTable const &actions, boost::shared_ptr< ActivityRegistry > reg, bool isEndPath)
void recordStatus(int nwrwue, bool isEvent)
void handleEarlyFinish(EventPrincipal &)
roAction_t actions[nactions]
int timesFailed(size_type i) const
std::vector< EarlyDeleteHelper * > earlyDeleteHelpers_
std::vector< WorkerInPath > WorkersInPath
WorkersInPath::size_type size_type
ActionTable const * act_table_
std::pair< double, double > timeCpuReal(unsigned int const i) const
HLTState
status of a trigger path
bool handleWorkerFailure(cms::Exception &e, int nwrwue, bool isEvent, bool begin, BranchType branchType, CurrentProcessingContext const &cpc, std::string const &id)
int timesPassed(size_type i) const
void handleEarlyFinish(RunPrincipal &)
void activate(std::size_t theSlotInPath, ModuleDescription const *mod)
Set the context to reflect the active state.
void processOneOccurrence(typename T::MyPrincipal &, EventSetup const &)
boost::shared_ptr< HLTGlobalStatus > TrigResPtr
boost::shared_ptr< CPUTimer > StopwatchPointer
void stdToEDM(std::exception const &e)
void handleEarlyFinish(LuminosityBlockPrincipal &)
boost::shared_ptr< ActivityRegistry > actReg_
void charPtrToEDM(char const *c)
void stringToEDM(std::string &s)
void updateCounters(bool succeed, bool isEvent)
static void exceptionContext(cms::Exception &ex, bool isEvent, bool begin, BranchType branchType, CurrentProcessingContext const &cpc, std::string const &id)
int timesVisited(size_type i) const
std::pair< double, double > timeCpuReal() const
void setEarlyDeleteHelpers(std::map< const Worker *, EarlyDeleteHelper * > const &)
RunStopwatch::StopwatchPointer stopwatch_
std::string const & name() const
Worker const * getWorker(size_type i) const
int timesExcept(size_type i) const