CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions
edm::maker::ModuleHolderT< T > Class Template Reference

#include <EDAnalyzer.h>

Inheritance diagram for edm::maker::ModuleHolderT< T >:
edm::maker::ModuleHolder

Public Member Functions

std::unique_ptr
< OutputModuleCommunicator
createOutputModuleCommunicator ()
 
Tmodule () const
 
ModuleDescription const & moduleDescription () const override
 
 ModuleHolderT (T *iModule, Maker const *iMaker)
 
void preallocate (PreallocationConfiguration const &iPrealloc) override
 
void registerProductsAndCallbacks (ProductRegistry *iReg) override
 
Trelease ()
 
void replaceModuleFor (Worker *iWorker) const override
 
void setModuleDescription (ModuleDescription const &iDesc) override
 
 ~ModuleHolderT ()
 
- Public Member Functions inherited from edm::maker::ModuleHolder
std::unique_ptr< WorkermakeWorker (ExceptionToActionTable const *actions) const
 
 ModuleHolder (void *iModule, Maker const *iMaker)
 
virtual ~ModuleHolder ()
 

Additional Inherited Members

- Protected Attributes inherited from edm::maker::ModuleHolder
Maker const * m_maker
 
void * m_mod
 

Detailed Description

template<typename T>
class edm::maker::ModuleHolderT< T >

Definition at line 22 of file EDAnalyzer.h.

Constructor & Destructor Documentation

template<typename T>
edm::maker::ModuleHolderT< T >::ModuleHolderT ( T iModule,
Maker const *  iMaker 
)
inline

Definition at line 59 of file ModuleHolder.h.

59 :ModuleHolder(iModule,iMaker) {}
ModuleHolder(void *iModule, Maker const *iMaker)
Definition: ModuleHolder.h:39
template<typename T>
edm::maker::ModuleHolderT< T >::~ModuleHolderT ( )
inline

Definition at line 60 of file ModuleHolder.h.

References edm::maker::ModuleHolder::m_mod.

60 { delete reinterpret_cast<T*>(m_mod); }
long double T

Member Function Documentation

template<typename T>
std::unique_ptr<OutputModuleCommunicator> edm::maker::ModuleHolderT< T >::createOutputModuleCommunicator ( )
inlinevirtual

Implements edm::maker::ModuleHolder.

Definition at line 87 of file ModuleHolder.h.

References edm::maker::ModuleHolderT< T >::module().

87  {
88  return std::move(OutputModuleCommunicatorT<T>::createIfNeeded(this->module()));
89  }
template<typename T>
T* edm::maker::ModuleHolderT< T >::module ( ) const
inline
template<typename T>
ModuleDescription const& edm::maker::ModuleHolderT< T >::moduleDescription ( ) const
inlineoverridevirtual

Implements edm::maker::ModuleHolder.

Definition at line 67 of file ModuleHolder.h.

References edm::maker::ModuleHolderT< T >::module().

67  {
68  return module()->moduleDescription();
69  }
template<typename T>
void edm::maker::ModuleHolderT< T >::preallocate ( PreallocationConfiguration const &  iPrealloc)
inlineoverridevirtual

Implements edm::maker::ModuleHolder.

Definition at line 73 of file ModuleHolder.h.

References edm::maker::ModuleHolderT< T >::module().

73  {
74  module()->doPreallocate(iPrealloc);
75  }
template<typename T>
void edm::maker::ModuleHolderT< T >::registerProductsAndCallbacks ( ProductRegistry iReg)
inlineoverridevirtual

Implements edm::maker::ModuleHolder.

Definition at line 77 of file ModuleHolder.h.

References edm::maker::ModuleHolderT< T >::module().

77  {
78  module()->registerProductsAndCallbacks(module(),iReg);
79  }
template<typename T>
T* edm::maker::ModuleHolderT< T >::release ( )
inline

Definition at line 80 of file ModuleHolder.h.

References m, edm::maker::ModuleHolder::m_mod, and edm::maker::ModuleHolderT< T >::module().

Referenced by cuy.ValElement::__init__().

80  {
81  T* m = module();
82  m_mod = nullptr;
83  return m;
84  }
long double T
template<typename T>
void edm::maker::ModuleHolderT< T >::replaceModuleFor ( Worker iWorker) const
inlineoverridevirtual

Implements edm::maker::ModuleHolder.

Definition at line 62 of file ModuleHolder.h.

References edm::maker::ModuleHolderT< T >::module(), and w().

62  {
63  auto w = dynamic_cast<WorkerT<T>*>(iWorker);
64  assert(0!=w);
65  w->setModule(module());
66  }
T w() const
template<typename T>
void edm::maker::ModuleHolderT< T >::setModuleDescription ( ModuleDescription const &  iDesc)
inlineoverridevirtual

Implements edm::maker::ModuleHolder.

Definition at line 70 of file ModuleHolder.h.

References edm::maker::ModuleHolderT< T >::module().

70  {
71  module()->setModuleDescription(iDesc);
72  }