1 #ifndef FWCore_Framework_ModuleHolder_h 2 #define FWCore_Framework_ModuleHolder_h 31 class ModuleDescription;
32 class ProductRegistry;
33 class ExceptionToActionTable;
34 class PreallocationConfiguration;
60 std::shared_ptr<T>
module()
const {
return m_mod; }
67 return m_mod->moduleDescription();
70 m_mod->setModuleDescription(iDesc);
73 m_mod->doPreallocate(iPrealloc);
77 m_mod->registerProductsAndCallbacks(
module().
get(),iReg);
80 std::unique_ptr<OutputModuleCommunicator>
ModuleHolderT(std::shared_ptr< T > iModule, Maker const *iMaker)
virtual ModuleDescription const & moduleDescription() const =0
void registerProductsAndCallbacks(ProductRegistry *iReg) override
roAction_t actions[nactions]
virtual void replaceModuleFor(Worker *) const =0
virtual void setModuleDescription(ModuleDescription const &iDesc)=0
void preallocate(PreallocationConfiguration const &iPrealloc) override
std::unique_ptr< Worker > makeWorker(ExceptionToActionTable const *actions) const
ModuleDescription const & moduleDescription() const override
void replaceModuleFor(Worker *iWorker) const override
virtual void preallocate(PreallocationConfiguration const &)=0
void setModuleDescription(ModuleDescription const &iDesc) override
std::shared_ptr< T > module() const
virtual void registerProductsAndCallbacks(ProductRegistry *)=0
~ModuleHolderT() override
std::shared_ptr< T > m_mod
virtual std::unique_ptr< OutputModuleCommunicator > createOutputModuleCommunicator()=0
std::unique_ptr< OutputModuleCommunicator > createOutputModuleCommunicator() override
ModuleHolder(Maker const *iMaker)