1 #ifndef FWCore_Framework_Path_h
2 #define FWCore_Framework_Path_h
20 #include "boost/shared_ptr.hpp"
37 Path(
int bitpos, std::string
const& path_name,
41 boost::shared_ptr<ActivityRegistry> reg,
54 return std::pair<double, double>(0., 0.);
57 std::pair<double, double>
timeCpuReal(
unsigned int const i)
const {
90 boost::shared_ptr<ActivityRegistry>
actReg_;
106 template <
typename T>
107 class PathSignalSentry {
110 std::string
const&
name,
113 a_(a), name_(name), nwrwue_(nwrwue), state_(state) {
114 if (a_) T::prePathSignal(a_, name_);
116 ~PathSignalSentry() {
117 HLTPathStatus
status(state_, nwrwue_);
118 if(a_) T::postPathSignal(a_, name_,
status);
122 std::string
const& name_;
128 template <
typename T>
134 std::auto_ptr<PathSignalSentry<T> > signaler(
new PathSignalSentry<T>(
actReg_.get(),
name_, nwrwue,
state_));
145 bool should_continue =
true;
152 i !=
end && should_continue;
155 assert (static_cast<int>(idx) == nwrwue);
157 cpc.
activate(idx,
i->getWorker()->descPtr());
158 should_continue =
i->runWorker<
T>(ep, es, &cpc);
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)
roAction_t actions[nactions]
int timesFailed(size_type i) const
std::vector< WorkerInPath > WorkersInPath
bool handleWorkerFailure(cms::Exception const &e, int nwrwue, bool isEvent)
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
int timesPassed(size_type i) const
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 recordUnknownException(int nwrwue, bool isEvent)
boost::shared_ptr< ActivityRegistry > actReg_
void updateCounters(bool succeed, bool isEvent)
int timesVisited(size_type i) const
std::pair< double, double > timeCpuReal() const
RunStopwatch::StopwatchPointer stopwatch_
std::string const & name() const
Worker const * getWorker(size_type i) const
int timesExcept(size_type i) const