CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Private Attributes
edm::WorkerInPath Class Reference

#include <WorkerInPath.h>

Public Types

enum  FilterAction { Normal = 0, Ignore, Veto }
 

Public Member Functions

bool checkResultsOfRunWorker (bool wasEvent)
 
void clearCounters ()
 
FilterAction filterAction () const
 
WorkergetWorker () const
 
template<typename T >
void runWorkerAsync (WaitingTask *iTask, typename T::MyPrincipal const &, EventSetupImpl const &, ServiceToken const &, StreamID streamID, typename T::Context const *context)
 
void setPathContext (PathContext const *v)
 
void skipWorker (EventPrincipal const &iPrincipal)
 
void skipWorker (RunPrincipal const &)
 
void skipWorker (LuminosityBlockPrincipal const &)
 
int timesExcept () const
 
int timesFailed () const
 
int timesPassed () const
 
int timesVisited () const
 
 WorkerInPath (Worker *, FilterAction theAction, unsigned int placeInPath)
 

Private Attributes

FilterAction filterAction_
 
PlaceInPathContext placeInPathContext_
 
int timesExcept_
 
int timesFailed_
 
int timesPassed_
 
int timesVisited_
 
Workerworker_
 

Detailed Description

Definition at line 25 of file WorkerInPath.h.

Member Enumeration Documentation

Enumerator
Normal 
Ignore 
Veto 

Definition at line 27 of file WorkerInPath.h.

Constructor & Destructor Documentation

edm::WorkerInPath::WorkerInPath ( Worker w,
FilterAction  theAction,
unsigned int  placeInPath 
)

Definition at line 6 of file WorkerInPath.cc.

References edm::Worker::addedToPath().

7  : timesVisited_(),
8  timesPassed_(),
9  timesFailed_(),
10  timesExcept_(),
11  filterAction_(theFilterAction),
12  worker_(w),
13  placeInPathContext_(placeInPath) {
14  w->addedToPath();
15  }
const double w
Definition: UKUtility.cc:23
FilterAction filterAction_
Definition: WorkerInPath.h:63
PlaceInPathContext placeInPathContext_
Definition: WorkerInPath.h:66

Member Function Documentation

bool edm::WorkerInPath::checkResultsOfRunWorker ( bool  wasEvent)
inline

Definition at line 69 of file WorkerInPath.h.

References edm::Worker::Exception, edm::Worker::Fail, filterAction(), Ignore, edm::Worker::Pass, edm::Worker::state(), timesExcept_, timesFailed_, timesPassed_, Veto, and worker_.

69  {
70  if (not wasEvent) {
71  return true;
72  }
73  auto state = worker_->state();
74  bool rc = true;
75  switch (state) {
76  case Worker::Fail: {
77  rc = false;
78  break;
79  }
80  case Worker::Pass:
81  break;
82  case Worker::Exception: {
83  ++timesExcept_;
84  return true;
85  }
86 
87  default:
88  assert(false);
89  }
90 
91  if (Ignore == filterAction()) {
92  rc = true;
93  } else if (Veto == filterAction()) {
94  rc = !rc;
95  }
96 
97  if (rc) {
98  ++timesPassed_;
99  } else {
100  ++timesFailed_;
101  }
102  return rc;
103  }
State state() const
Definition: Worker.h:232
FilterAction filterAction() const
Definition: WorkerInPath.h:52
void edm::WorkerInPath::clearCounters ( )
inline
FilterAction edm::WorkerInPath::filterAction ( ) const
inline

Definition at line 52 of file WorkerInPath.h.

References filterAction_.

Referenced by checkResultsOfRunWorker().

52 { return filterAction_; }
FilterAction filterAction_
Definition: WorkerInPath.h:63
Worker* edm::WorkerInPath::getWorker ( ) const
inline

Definition at line 53 of file WorkerInPath.h.

References worker_.

53 { return worker_; }
template<typename T >
void edm::WorkerInPath::runWorkerAsync ( WaitingTask iTask,
typename T::MyPrincipal const &  ep,
EventSetupImpl const &  es,
ServiceToken const &  token,
StreamID  streamID,
typename T::Context const *  context 
)

Definition at line 106 of file WorkerInPath.h.

References edm::Worker::doWorkAsync(), edm::Worker::doWorkNoPrefetchingAsync(), placeInPathContext_, timesVisited_, and worker_.

111  {
112  if (T::isEvent_) {
113  ++timesVisited_;
114  }
115 
116  if (T::isEvent_) {
117  ParentContext parentContext(&placeInPathContext_);
118  worker_->doWorkAsync<T>(iTask, ep, es, token, streamID, parentContext, context);
119  } else {
120  ParentContext parentContext(context);
121 
122  // We do not need to run prefetching here because this only handles
123  // stream transitions for runs and lumis. There are no products put
124  // into the runs or lumis in stream transitions, so there can be
125  // no data dependencies which require prefetching. Prefetching is
126  // needed for global transitions, but they are run elsewhere.
127  worker_->doWorkNoPrefetchingAsync<T>(iTask, ep, es, token, streamID, parentContext, context);
128  }
129  }
void doWorkNoPrefetchingAsync(WaitingTask *task, typename T::MyPrincipal const &, EventSetupImpl const &c, ServiceToken const &token, StreamID stream, ParentContext const &parentContext, typename T::Context const *context)
Definition: Worker.h:926
PlaceInPathContext placeInPathContext_
Definition: WorkerInPath.h:66
void doWorkAsync(WaitingTask *task, typename T::MyPrincipal const &, EventSetupImpl const &c, ServiceToken const &token, StreamID stream, ParentContext const &parentContext, typename T::Context const *context)
Definition: Worker.h:827
long double T
void edm::WorkerInPath::setPathContext ( PathContext const *  v)
inline

Definition at line 55 of file WorkerInPath.h.

References placeInPathContext_, and edm::PlaceInPathContext::setPathContext().

void setPathContext(PathContext const *v)
PlaceInPathContext placeInPathContext_
Definition: WorkerInPath.h:66
void edm::WorkerInPath::skipWorker ( EventPrincipal const &  iPrincipal)
inline

Definition at line 41 of file WorkerInPath.h.

References edm::Worker::skipOnPath(), and worker_.

41 { worker_->skipOnPath(); }
void skipOnPath()
Definition: Worker.cc:362
void edm::WorkerInPath::skipWorker ( RunPrincipal const &  )
inline

Definition at line 42 of file WorkerInPath.h.

42 {}
void edm::WorkerInPath::skipWorker ( LuminosityBlockPrincipal const &  )
inline

Definition at line 43 of file WorkerInPath.h.

43 {}
int edm::WorkerInPath::timesExcept ( ) const
inline

Definition at line 50 of file WorkerInPath.h.

References timesExcept_.

50 { return timesExcept_; }
int edm::WorkerInPath::timesFailed ( ) const
inline

Definition at line 49 of file WorkerInPath.h.

References timesFailed_.

49 { return timesFailed_; }
int edm::WorkerInPath::timesPassed ( ) const
inline

Definition at line 48 of file WorkerInPath.h.

References timesPassed_.

48 { return timesPassed_; }
int edm::WorkerInPath::timesVisited ( ) const
inline

Definition at line 47 of file WorkerInPath.h.

References timesVisited_.

47 { return timesVisited_; }

Member Data Documentation

FilterAction edm::WorkerInPath::filterAction_
private

Definition at line 63 of file WorkerInPath.h.

Referenced by filterAction().

PlaceInPathContext edm::WorkerInPath::placeInPathContext_
private

Definition at line 66 of file WorkerInPath.h.

Referenced by runWorkerAsync(), and setPathContext().

int edm::WorkerInPath::timesExcept_
private

Definition at line 61 of file WorkerInPath.h.

Referenced by checkResultsOfRunWorker(), clearCounters(), and timesExcept().

int edm::WorkerInPath::timesFailed_
private

Definition at line 60 of file WorkerInPath.h.

Referenced by checkResultsOfRunWorker(), clearCounters(), and timesFailed().

int edm::WorkerInPath::timesPassed_
private

Definition at line 59 of file WorkerInPath.h.

Referenced by checkResultsOfRunWorker(), clearCounters(), and timesPassed().

int edm::WorkerInPath::timesVisited_
private

Definition at line 58 of file WorkerInPath.h.

Referenced by clearCounters(), runWorkerAsync(), and timesVisited().

Worker* edm::WorkerInPath::worker_
private

Definition at line 64 of file WorkerInPath.h.

Referenced by checkResultsOfRunWorker(), getWorker(), runWorkerAsync(), and skipWorker().