CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes
edm::WorkerT< T > Class Template Reference

#include <Frameworkfwd.h>

Inheritance diagram for edm::WorkerT< T >:
edm::Worker

Public Types

typedef T ModuleType
 
typedef WorkerT< TWorkerType
 
- Public Types inherited from edm::Worker
enum  State { Ready, Pass, Fail, Exception }
 
enum  Types { kAnalyzer, kFilter, kProducer, kOutputModule }
 

Public Member Functions

virtual Types moduleType () const override
 
template<>
Worker::Types moduleType () const
 
template<>
Worker::Types moduleType () const
 
template<>
Worker::Types moduleType () const
 
template<>
Worker::Types moduleType () const
 
template<>
Worker::Types moduleType () const
 
template<>
Worker::Types moduleType () const
 
void setEventSelectionInfo (std::map< std::string, std::vector< std::pair< std::string, int > > > const &outputModulePathPositions, bool anyProductProduced)
 
template<>
void setEventSelectionInfo (std::map< std::string, std::vector< std::pair< std::string, int > > > const &outputModulePathPositions, bool anyProductProduced)
 
void setModule (std::unique_ptr< T > &&iModule)
 
virtual void updateLookup (BranchType iBranchType, ProductHolderIndexHelper const &) override
 
 WorkerT (std::unique_ptr< T > &&, ModuleDescription const &, WorkerParams const &)
 
virtual ~WorkerT ()
 
- Public Member Functions inherited from edm::Worker
void beginJob ()
 
void clearCounters ()
 
ModuleDescription const * descPtr () const
 
ModuleDescription const & description () const
 
template<typename T >
bool doWork (typename T::MyPrincipal &, EventSetup const &c, CurrentProcessingContext const *cpc, CPUTimer *const timer)
 
void endJob ()
 
Workeroperator= (Worker const &)=delete
 
void pathFinished (EventPrincipal &)
 
void postDoEvent (EventPrincipal &)
 
void postForkReacquireResources (unsigned int iChildIndex, unsigned int iNumberOfChildren)
 
void preForkReleaseResources ()
 
void reset ()
 
void respondToCloseInputFile (FileBlock const &fb)
 
void respondToCloseOutputFiles (FileBlock const &fb)
 
void respondToOpenInputFile (FileBlock const &fb)
 
void respondToOpenOutputFiles (FileBlock const &fb)
 
void setActivityRegistry (boost::shared_ptr< ActivityRegistry > areg)
 
void setEarlyDeleteHelper (EarlyDeleteHelper *iHelper)
 
State state () const
 
std::pair< double, double > timeCpuReal () const
 
int timesExcept () const
 
int timesFailed () const
 
int timesPass () const
 
int timesPassed () const
 
int timesRun () const
 
int timesVisited () const
 
void useStopwatch ()
 
 Worker (ModuleDescription const &iMD, WorkerParams const &iWP)
 
 Worker (Worker const &)=delete
 
virtual ~Worker ()
 

Static Public Member Functions

template<typename ModType >
static std::unique_ptr< TmakeModule (ModuleDescription const &, ParameterSet const &pset)
 

Protected Member Functions

Tmodule ()
 
T const & module () const
 

Private Member Functions

virtual void implBeginJob () override
 
virtual bool implDoBegin (EventPrincipal &ep, EventSetup const &c, CurrentProcessingContext const *cpc) override
 
virtual bool implDoBegin (RunPrincipal &rp, EventSetup const &c, CurrentProcessingContext const *cpc) override
 
virtual bool implDoBegin (LuminosityBlockPrincipal &lbp, EventSetup const &c, CurrentProcessingContext const *cpc) override
 
virtual bool implDoEnd (EventPrincipal &ep, EventSetup const &c, CurrentProcessingContext const *cpc) override
 
virtual bool implDoEnd (RunPrincipal &rp, EventSetup const &c, CurrentProcessingContext const *cpc) override
 
virtual bool implDoEnd (LuminosityBlockPrincipal &lbp, EventSetup const &c, CurrentProcessingContext const *cpc) override
 
virtual void implEndJob () override
 
virtual void implPostForkReacquireResources (unsigned int iChildIndex, unsigned int iNumberOfChildren) override
 
virtual void implPreForkReleaseResources () override
 
virtual void implRespondToCloseInputFile (FileBlock const &fb) override
 
virtual void implRespondToCloseOutputFiles (FileBlock const &fb) override
 
virtual void implRespondToOpenInputFile (FileBlock const &fb) override
 
virtual void implRespondToOpenOutputFiles (FileBlock const &fb) override
 
virtual std::string workerType () const override
 

Private Attributes

std::unique_ptr< Tmodule_
 

Detailed Description

template<typename T>
class edm::WorkerT< T >

Definition at line 49 of file Frameworkfwd.h.

Member Typedef Documentation

template<typename T>
typedef T edm::WorkerT< T >::ModuleType

Definition at line 23 of file WorkerT.h.

template<typename T>
typedef WorkerT<T> edm::WorkerT< T >::WorkerType

Definition at line 24 of file WorkerT.h.

Constructor & Destructor Documentation

template<typename T>
edm::WorkerT< T >::WorkerT ( std::unique_ptr< T > &&  ed,
ModuleDescription const &  md,
WorkerParams const &  wp 
)
inline

Definition at line 19 of file WorkerT.cc.

References edm::WorkerT< T >::module_, and edm::WorkerParams::reg_.

19  :
20  Worker(md, wp),
21  module_(std::move(ed)) {
22  assert(module_.get() != 0);
23  module_->setModuleDescription(md);
24  module_->registerProductsAndCallbacks(module_.get(), wp.reg_);
25  }
std::unique_ptr< T > module_
Definition: WorkerT.h:81
Worker(ModuleDescription const &iMD, WorkerParams const &iWP)
Definition: Worker.cc:44
template<typename T >
edm::WorkerT< T >::~WorkerT ( )
virtual

Definition at line 28 of file WorkerT.cc.

28  {
29  }

Member Function Documentation

template<typename T >
void edm::WorkerT< T >::implBeginJob ( )
inlineoverrideprivatevirtual

Implements edm::Worker.

Definition at line 89 of file WorkerT.cc.

References sistrip::module_.

89  {
90  module_->doBeginJob();
91  }
std::unique_ptr< T > module_
Definition: WorkerT.h:81
template<typename T >
bool edm::WorkerT< T >::implDoBegin ( EventPrincipal ep,
EventSetup const &  c,
CurrentProcessingContext const *  cpc 
)
inlineoverrideprivatevirtual

Implements edm::Worker.

Definition at line 34 of file WorkerT.cc.

References edm::getUnscheduledHandler(), sistrip::module_, getGTfromDQMFile::obj, edm::Worker::postDoEvent(), and alignCSCRings::s.

34  {
35  UnscheduledHandlerSentry s(getUnscheduledHandler(ep), cpc);
36  boost::shared_ptr<Worker> sentry(this,[&ep](Worker* obj) {obj->postDoEvent(ep);});
37  return module_->doEvent(ep, c, cpc);
38  }
std::unique_ptr< T > module_
Definition: WorkerT.h:81
UnscheduledHandler * getUnscheduledHandler(EventPrincipal const &ep)
Definition: WorkerT.cc:12
Worker(ModuleDescription const &iMD, WorkerParams const &iWP)
Definition: Worker.cc:44
template<typename T >
bool edm::WorkerT< T >::implDoBegin ( RunPrincipal rp,
EventSetup const &  c,
CurrentProcessingContext const *  cpc 
)
inlineoverrideprivatevirtual

Implements edm::Worker.

Definition at line 50 of file WorkerT.cc.

References sistrip::module_.

50  {
51  module_->doBeginRun(rp, c, cpc);
52  return true;
53  }
std::unique_ptr< T > module_
Definition: WorkerT.h:81
template<typename T >
bool edm::WorkerT< T >::implDoBegin ( LuminosityBlockPrincipal lbp,
EventSetup const &  c,
CurrentProcessingContext const *  cpc 
)
inlineoverrideprivatevirtual

Implements edm::Worker.

Definition at line 66 of file WorkerT.cc.

References sistrip::module_.

66  {
67  module_->doBeginLuminosityBlock(lbp, c, cpc);
68  return true;
69  }
std::unique_ptr< T > module_
Definition: WorkerT.h:81
template<typename T >
bool edm::WorkerT< T >::implDoEnd ( EventPrincipal ep,
EventSetup const &  c,
CurrentProcessingContext const *  cpc 
)
inlineoverrideprivatevirtual

Implements edm::Worker.

Definition at line 43 of file WorkerT.cc.

43  {
44  return false;
45  }
template<typename T >
bool edm::WorkerT< T >::implDoEnd ( RunPrincipal rp,
EventSetup const &  c,
CurrentProcessingContext const *  cpc 
)
inlineoverrideprivatevirtual

Implements edm::Worker.

Definition at line 58 of file WorkerT.cc.

References sistrip::module_.

58  {
59  module_->doEndRun(rp, c, cpc);
60  return true;
61  }
std::unique_ptr< T > module_
Definition: WorkerT.h:81
template<typename T >
bool edm::WorkerT< T >::implDoEnd ( LuminosityBlockPrincipal lbp,
EventSetup const &  c,
CurrentProcessingContext const *  cpc 
)
inlineoverrideprivatevirtual

Implements edm::Worker.

Definition at line 74 of file WorkerT.cc.

References sistrip::module_.

74  {
75  module_->doEndLuminosityBlock(lbp, c, cpc);
76  return true;
77  }
std::unique_ptr< T > module_
Definition: WorkerT.h:81
template<typename T >
void edm::WorkerT< T >::implEndJob ( )
inlineoverrideprivatevirtual

Implements edm::Worker.

Definition at line 96 of file WorkerT.cc.

References sistrip::module_.

96  {
97  module_->doEndJob();
98  }
std::unique_ptr< T > module_
Definition: WorkerT.h:81
template<typename T >
void edm::WorkerT< T >::implPostForkReacquireResources ( unsigned int  iChildIndex,
unsigned int  iNumberOfChildren 
)
inlineoverrideprivatevirtual

Implements edm::Worker.

Definition at line 138 of file WorkerT.cc.

References sistrip::module_.

139  {
140  module_->doPostForkReacquireResources(iChildIndex, iNumberOfChildren);
141  }
std::unique_ptr< T > module_
Definition: WorkerT.h:81
template<typename T >
void edm::WorkerT< T >::implPreForkReleaseResources ( )
inlineoverrideprivatevirtual

Implements edm::Worker.

Definition at line 131 of file WorkerT.cc.

References sistrip::module_.

131  {
132  module_->doPreForkReleaseResources();
133  }
std::unique_ptr< T > module_
Definition: WorkerT.h:81
template<typename T >
void edm::WorkerT< T >::implRespondToCloseInputFile ( FileBlock const &  fb)
inlineoverrideprivatevirtual

Implements edm::Worker.

Definition at line 110 of file WorkerT.cc.

References sistrip::module_.

110  {
111  module_->doRespondToCloseInputFile(fb);
112  }
std::unique_ptr< T > module_
Definition: WorkerT.h:81
template<typename T >
void edm::WorkerT< T >::implRespondToCloseOutputFiles ( FileBlock const &  fb)
inlineoverrideprivatevirtual

Implements edm::Worker.

Definition at line 124 of file WorkerT.cc.

References sistrip::module_.

124  {
125  module_->doRespondToCloseOutputFiles(fb);
126  }
std::unique_ptr< T > module_
Definition: WorkerT.h:81
template<typename T >
void edm::WorkerT< T >::implRespondToOpenInputFile ( FileBlock const &  fb)
inlineoverrideprivatevirtual

Implements edm::Worker.

Definition at line 103 of file WorkerT.cc.

References sistrip::module_.

103  {
104  module_->doRespondToOpenInputFile(fb);
105  }
std::unique_ptr< T > module_
Definition: WorkerT.h:81
template<typename T >
void edm::WorkerT< T >::implRespondToOpenOutputFiles ( FileBlock const &  fb)
inlineoverrideprivatevirtual

Implements edm::Worker.

Definition at line 117 of file WorkerT.cc.

References sistrip::module_.

117  {
118  module_->doRespondToOpenOutputFiles(fb);
119  }
std::unique_ptr< T > module_
Definition: WorkerT.h:81
template<typename T>
template<typename ModType >
static std::unique_ptr<T> edm::WorkerT< T >::makeModule ( ModuleDescription const &  ,
ParameterSet const &  pset 
)
inlinestatic

Definition at line 32 of file WorkerT.h.

33  {
34  std::unique_ptr<ModType> module = std::unique_ptr<ModType>(new ModType(pset));
35  return std::unique_ptr<T>(module.release());
36  }
Definition: vlib.h:209
template<typename T>
T& edm::WorkerT< T >::module ( )
inlineprotected

Definition at line 54 of file WorkerT.h.

54 {return *module_;}
std::unique_ptr< T > module_
Definition: WorkerT.h:81
template<typename T>
T const& edm::WorkerT< T >::module ( ) const
inlineprotected

Definition at line 55 of file WorkerT.h.

55 {return *module_;}
std::unique_ptr< T > module_
Definition: WorkerT.h:81
template<typename T>
virtual Types edm::WorkerT< T >::moduleType ( ) const
overridevirtual

Implements edm::Worker.

template<>
Worker::Types edm::WorkerT< EDAnalyzer >::moduleType ( ) const
virtual

Implements edm::Worker.

Definition at line 163 of file WorkerT.cc.

template<>
Worker::Types edm::WorkerT< EDProducer >::moduleType ( ) const
virtual

Implements edm::Worker.

Definition at line 165 of file WorkerT.cc.

template<>
Worker::Types edm::WorkerT< EDFilter >::moduleType ( ) const
virtual

Implements edm::Worker.

Definition at line 167 of file WorkerT.cc.

References kFilter.

167 { return Worker::kFilter;}
template<>
Worker::Types edm::WorkerT< OutputModule >::moduleType ( ) const
virtual

Implements edm::Worker.

Definition at line 169 of file WorkerT.cc.

template<>
Worker::Types edm::WorkerT< edm::one::EDProducerBase >::moduleType ( ) const
virtual

Implements edm::Worker.

Definition at line 171 of file WorkerT.cc.

template<>
Worker::Types edm::WorkerT< edm::one::EDFilterBase >::moduleType ( ) const
virtual

Implements edm::Worker.

Definition at line 173 of file WorkerT.cc.

References kFilter.

173 { return Worker::kFilter;}
template<typename T >
void edm::WorkerT< T >::setEventSelectionInfo ( std::map< std::string, std::vector< std::pair< std::string, int > > > const &  outputModulePathPositions,
bool  anyProductProduced 
)

Definition at line 150 of file WorkerT.cc.

151  {
152  //do nothing for the regular case
153  }
template<>
void edm::WorkerT< OutputModule >::setEventSelectionInfo ( std::map< std::string, std::vector< std::pair< std::string, int > > > const &  outputModulePathPositions,
bool  anyProductProduced 
)

Definition at line 157 of file WorkerT.cc.

References sistrip::module_.

158  {
159  module_->setEventSelectionInfo(outputModulePathPositions, anyProductProduced);
160  }
std::unique_ptr< T > module_
Definition: WorkerT.h:81
template<typename T>
void edm::WorkerT< T >::setModule ( std::unique_ptr< T > &&  iModule)
inline

Definition at line 38 of file WorkerT.h.

38  {
39  module_ = std::move(iModule);
40  module_->setModuleDescription(description());
41 
42  }
std::unique_ptr< T > module_
Definition: WorkerT.h:81
ModuleDescription const & description() const
Definition: Worker.h:77
template<typename T >
void edm::WorkerT< T >::updateLookup ( BranchType  iBranchType,
ProductHolderIndexHelper const &  iHelper 
)
overridevirtual

Implements edm::Worker.

Definition at line 144 of file WorkerT.cc.

References sistrip::module_.

145  {
146  module_->updateLookup(iBranchType,iHelper);
147  }
std::unique_ptr< T > module_
Definition: WorkerT.h:81
template<typename T >
std::string edm::WorkerT< T >::workerType ( ) const
inlineoverrideprivatevirtual

Implements edm::Worker.

Definition at line 82 of file WorkerT.cc.

References sistrip::module_.

82  {
83  return module_->workerType();
84  }
std::unique_ptr< T > module_
Definition: WorkerT.h:81

Member Data Documentation

template<typename T>
std::unique_ptr<T> edm::WorkerT< T >::module_
private