Arcane  4.1.12.0
Developer documentation
Loading...
Searching...
No Matches
Arcane::IModuleFactoryInfo Class Referenceabstract

Information about a module factory. More...

#include <arcane/core/IModuleFactory.h>

Inheritance diagram for Arcane::IModuleFactoryInfo:
Collaboration diagram for Arcane::IModuleFactoryInfo:

Public Member Functions

virtual void addReference ()=0
virtual void removeReference ()=0
virtual bool isAutoload () const =0
 Indicates if the module should be loaded automatically.
virtual void initializeModuleFactory (ISubDomain *sub_domain)=0
 If the factory is a one-to-one module, initializes it on the sub-domain sub_domain.
virtual Ref< IModulecreateModule (ISubDomain *parent, const MeshHandle &mesh_handle)=0
 Creates a module.
virtual String moduleName () const =0
 Name of the module created by this factory.
virtual const IServiceInfoserviceInfo () const =0
 Information about the module that can be created by this factory.

Protected Member Functions

virtual ~IModuleFactoryInfo ()
 Releases resources.

Detailed Description

Information about a module factory.

This interface contains the necessary information about a module factory.

The module can be created directly via the createModule() method.

This class uses a reference counter to manage its lifetime (see the ReferenceCounter class).

Definition at line 42 of file IModuleFactory.h.

Constructor & Destructor Documentation

◆ ~IModuleFactoryInfo()

virtual Arcane::IModuleFactoryInfo::~IModuleFactoryInfo ( )
inlineprotectedvirtual

Releases resources.

Definition at line 47 of file IModuleFactory.h.

Member Function Documentation

◆ createModule()

virtual Ref< IModule > Arcane::IModuleFactoryInfo::createModule ( ISubDomain * parent,
const MeshHandle & mesh_handle )
pure virtual

Creates a module.

The implementation must call parent->moduleMng()->addModule() for the created module.

Parameters
parentParent of this module.
meshmesh associated with the module.
Returns
the created module

Implemented in Arcane::ModuleFactory.

Referenced by Arcane::TimeLoopMng::_createModule(), and Arcane::ServiceLoader::loadModules().

Here is the caller graph for this function:

◆ initializeModuleFactory()

virtual void Arcane::IModuleFactoryInfo::initializeModuleFactory ( ISubDomain * sub_domain)
pure virtual

If the factory is a one-to-one module, initializes it on the sub-domain sub_domain.

This method is called when the sub-domain is created, to perform specific module initializations before it is manufactured. For example, to add time loops specific to the module.

Implemented in Arcane::ModuleFactory.

Referenced by Arcane::ServiceLoader::initializeModuleFactories().

Here is the caller graph for this function:

◆ isAutoload()

virtual bool Arcane::IModuleFactoryInfo::isAutoload ( ) const
pure virtual

Indicates if the module should be loaded automatically.

If this property is true, the module will always be loaded even if it does not appear in the time loop.

Implemented in Arcane::ModuleFactory.

Referenced by Arcane::ServiceLoader::loadModules().

Here is the caller graph for this function:

◆ moduleName()

virtual String Arcane::IModuleFactoryInfo::moduleName ( ) const
pure virtual

Name of the module created by this factory.

Implemented in Arcane::ModuleFactory.

Referenced by Arcane::TimeLoopMng::_fillModuleFactoryMap(), and Arcane::ServiceAndModuleFactoryMng::addGlobalFactory().

Here is the caller graph for this function:

◆ serviceInfo()

virtual const IServiceInfo * Arcane::IModuleFactoryInfo::serviceInfo ( ) const
pure virtual

Information about the module that can be created by this factory.

The returned instance remains the property of the application that created it and must neither be modified nor destroyed.

Implemented in Arcane::ModuleFactory.

Referenced by Arcane::TimeLoopMng::_fillModuleFactoryMap().

Here is the caller graph for this function:

The documentation for this class was generated from the following file: