CMS 3D CMS Logo

Public Member Functions | Private Member Functions

edm::WorkerMaker< T > Class Template Reference

#include <WorkerMaker.h>

Inheritance diagram for edm::WorkerMaker< T >:
edm::Maker

List of all members.

Public Member Functions

 WorkerMaker ()

Private Member Functions

virtual const std::string & baseType () const
virtual void fillDescriptions (ConfigurationDescriptions &iDesc) const
virtual void implSwapModule (Worker *, ParameterSet const &)
virtual std::unique_ptr< WorkermakeWorker (WorkerParams const &p, ModuleDescription const &md) const

Detailed Description

template<class T>
class edm::WorkerMaker< T >

Definition at line 45 of file WorkerMaker.h.


Constructor & Destructor Documentation

template<class T >
edm::WorkerMaker< T >::WorkerMaker ( ) [explicit]

Definition at line 57 of file WorkerMaker.h.

                              {
  }

Member Function Documentation

template<class T >
const std::string & edm::WorkerMaker< T >::baseType ( ) const [private, virtual]

Implements edm::Maker.

Definition at line 92 of file WorkerMaker.h.

                                                  {
    return T::baseType();
  }
template<class T >
void edm::WorkerMaker< T >::fillDescriptions ( ConfigurationDescriptions iDesc) const [private, virtual]

Implements edm::Maker.

Definition at line 61 of file WorkerMaker.h.

                                                                              {
    T::fillDescriptions(iDesc);
    T::prevalidate(iDesc);
  }
template<class T >
void edm::WorkerMaker< T >::implSwapModule ( Worker w,
ParameterSet const &  p 
) [private, virtual]

Implements edm::Maker.

Definition at line 78 of file WorkerMaker.h.

References edm::Worker::description(), python::rootplot::argparse::module, AlCaHLTBitMon_ParallelJobs::p, svgfig::template(), and w().

                                                                      {
    typedef T UserType;
    typedef typename UserType::ModuleType ModuleType;
    typedef typename UserType::WorkerType WorkerType;
          
    WorkerType* wt = dynamic_cast<WorkerType*>(w);
    assert(0!=wt);

    std::unique_ptr<ModuleType> module(WorkerType::template makeModule<UserType>(w->description(), p));
     
    wt->setModule(std::move(module));
  }
template<class T >
std::unique_ptr< Worker > edm::WorkerMaker< T >::makeWorker ( WorkerParams const &  p,
ModuleDescription const &  md 
) const [private, virtual]

Implements edm::Maker.

Definition at line 67 of file WorkerMaker.h.

References python::rootplot::argparse::module, edm::WorkerParams::pset_, and svgfig::template().

                                                                                                           {
    typedef T UserType;
    typedef typename UserType::ModuleType ModuleType;
    typedef typename UserType::WorkerType WorkerType;
    
    std::unique_ptr<ModuleType> module(WorkerType::template makeModule<UserType>(md, *p.pset_));
    return std::unique_ptr<Worker>(new WorkerType(std::move(module), md, p));
  }