1 #ifndef FWCore_Framework_Path_h
2 #define FWCore_Framework_Path_h
23 #include "boost/shared_ptr.hpp"
35 class ModuleDescription;
37 class LuminosityBlockPrincipal;
54 boost::shared_ptr<ActivityRegistry> reg,
62 StreamID const&,
typename T::Context
const*);
71 return std::pair<double, double>(0., 0.);
74 std::pair<double, double>
timeCpuReal(
unsigned int const i)
const {
146 template <
typename T>
147 class PathSignalSentry {
152 PathContext
const* pathContext) :
153 a_(a), nwrwue_(nwrwue), state_(state), pathContext_(pathContext) {
154 if (a_) T::prePathSignal(a_, pathContext_);
156 ~PathSignalSentry() {
157 HLTPathStatus
status(state_, nwrwue_);
158 if(a_) T::postPathSignal(a_,
status, pathContext_);
164 PathContext
const* pathContext_;
168 template <
typename T>
170 StreamID const& streamID,
typename T::Context
const* context) {
186 bool should_continue =
true;
189 i !=
end && should_continue;
195 should_continue =
i->runWorker<
T>(ep, es, streamID, context);
197 should_continue =
i->runWorker<
T>(ep, es, streamID, context);
203 std::ostringstream ost;
206 i->getWorker()->description(), ost.str());
209 if (not should_continue) {
std::string const & pathName() const
void recordStatus(int nwrwue, bool isEvent)
void handleEarlyFinish(EventPrincipal &)
int timesFailed(size_type i) const
std::vector< EarlyDeleteHelper * > earlyDeleteHelpers_
std::vector< WorkerInPath > WorkersInPath
WorkersInPath::size_type size_type
std::pair< double, double > timeCpuReal(unsigned int const i) const
HLTState
status of a trigger path
int timesPassed(size_type i) const
void processOneOccurrence(typename T::MyPrincipal &, EventSetup const &, StreamID const &, typename T::Context const *)
void handleEarlyFinish(RunPrincipal &)
boost::shared_ptr< HLTGlobalStatus > TrigResPtr
boost::shared_ptr< CPUTimer > StopwatchPointer
void handleEarlyFinish(LuminosityBlockPrincipal &)
Path(int bitpos, std::string const &path_name, WorkersInPath const &workers, TrigResPtr trptr, ExceptionToActionTable const &actions, boost::shared_ptr< ActivityRegistry > reg, StreamContext const *streamContext, PathContext::PathType pathType)
boost::shared_ptr< ActivityRegistry > actReg_
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)
int timesVisited(size_type i) const
std::pair< double, double > timeCpuReal() 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 &)
RunStopwatch::StopwatchPointer stopwatch_
ExceptionToActionTable const * act_table_
Path const & operator=(Path const &)=delete
std::string const & name() const
Worker const * getWorker(size_type i) const
auto wrap(F iFunc) -> decltype(iFunc())
int timesExcept(size_type i) const