Arcane  4.2.3.0
Developer documentation
Loading...
Searching...
No Matches
Arcane::IMainFactory Class Referenceabstract

Factory for Arcane classes. More...

#include <arcane/core/IMainFactory.h>

Inheritance diagram for Arcane::IMainFactory:
Collaboration diagram for Arcane::IMainFactory:

Public Member Functions

virtual ~IMainFactory ()
 Releases resources.
virtual IArcaneMain * createArcaneMain (const ApplicationInfo &app_info)=0
 Creates an instance of IArcaneMain.
virtual IApplication * createApplication (IArcaneMain *)=0
 Creates an instance of a supervisor.
virtual IVariableMng * createVariableMng (ISubDomain *)=0
 Creates an instance of the variable manager.
virtual IModuleMng * createModuleMng (ISubDomain *)=0
 Creates an instance of the module manager.
virtual IEntryPointMng * createEntryPointMng (ISubDomain *)=0
 Creates an instance of the entry point manager.
virtual ITimeHistoryMng * createTimeHistoryMng (ISubDomain *)=0
 Creates an instance of the time history manager.
virtual ICaseMng * createCaseMng (ISubDomain *)=0
 Creates an instance of the case manager.
virtual ICaseDocument * createCaseDocument (IApplication *)=0
 Creates an instance of a case document.
virtual ICaseDocument * createCaseDocument (IApplication *, const String &lang)=0
 Creates an instance of a case document for a given language lang.
virtual ICaseDocument * createCaseDocument (IApplication *, IXmlDocumentHolder *doc)=0
 Creates an instance of a case document.
virtual ARCANE_DEPRECATED_116 ITimeStats * createTimeStats (ISubDomain *)=0
 Creates an instance of execution time statistics.
virtual ITimeStats * createTimeStats (ITimerMng *tim, ITraceMng *trm, const String &name)=0
 Creates an instance of execution time statistics.
virtual ITimeLoopMng * createTimeLoopMng (ISubDomain *)=0
 Creates an instance of the time loop manager.
virtual ITimeLoop * createTimeLoop (IApplication *sm, const String &name)=0
 Creates a time loop named name.
virtual IIOMng * createIOMng (IApplication *)=0
 Creates an instance of the I/O manager.
virtual IIOMng * createIOMng (IParallelMng *pm)=0
 Creates an instance of the I/O manager for the parallelism manager pm.
virtual IServiceLoader * createServiceLoader ()=0
 Creates an instance of the service loader.
virtual IServiceMng * createServiceMng (IBase *)=0
 Creates an instance of the service manager.
virtual ICheckpointMng * createCheckpointMng (ISubDomain *)=0
 Creates an instance of the checkpoint manager.
virtual IPropertyMng * createPropertyMng (ISubDomain *)=0
 Creates an instance of the property manager.
virtual Ref< IPropertyMng > createPropertyMngReference (ISubDomain *)=0
 Creates an instance of the property manager.
virtual IPrimaryMesh * createMesh (ISubDomain *sub_domain, const String &name)=0
 Creates or retrieves a mesh.
virtual IPrimaryMesh * createMesh (ISubDomain *sub_domain, const String &name, bool is_amr)=0
 Creates or retrieves a mesh.
virtual IPrimaryMesh * createMesh (ISubDomain *sub_domain, const String &name, eMeshAMRKind amr_type)=0
 Creates or retrieves a mesh.
virtual IPrimaryMesh * createMesh (ISubDomain *sub_domain, IParallelMng *pm, const String &name)=0
 Creates or retrieves a mesh.
virtual IPrimaryMesh * createMesh (ISubDomain *sub_domain, IParallelMng *pm, const String &name, bool is_amr)=0
 Creates or retrieves a mesh.
virtual IPrimaryMesh * createMesh (ISubDomain *sub_domain, IParallelMng *pm, const String &name, eMeshAMRKind amr_type)=0
 Creates or retrieves a mesh.
virtual IMesh * createSubMesh (IMesh *mesh, const ItemGroup &group, const String &name)=0
 Creates a sub-mesh for the mesh mesh, named name.
virtual IDataFactory * createDataFactory (IApplication *)=0
 Creates a factory for data.
virtual Ref< IDataFactoryMng > createDataFactoryMngRef (IApplication *)=0
 Creates a factory manager for data.
virtual Ref< IAcceleratorMng > createAcceleratorMngRef (ITraceMng *tm)=0
 Creates a manager for accelerators.
virtual ITraceMng * createTraceMng ()=0
 Creates a trace manager.
virtual ITraceMngPolicy * createTraceMngPolicy (IApplication *app)=0
 Creates a configuration manager for a trace manager.
virtual IModuleMaster * createModuleMaster (ISubDomain *sd)=0
 Creates the master module for the sub-domain sd.
virtual ILoadBalanceMng * createLoadBalanceMng (ISubDomain *sd)=0
 Creates a description manager for load balancing.

Detailed Description

Factory for Arcane classes.

It is a virtual class containing methods to manufacture the different instances of the architecture managers (Design Pattern: AbstractFactory).

Arcane provides default factories for most managers (IApplication, IParallelSuperMng, ...). However, the class managing the code must be specified by implementing the createArcaneMain() method in a derived class.

The general entry point of the code is achieved by calling the function arcaneMain().

For example, if we define a class ConcreteMainFactory that derives from IMainFactory, we run the code as follows:

int
main(int argc,char** argv)
{
ApplicationInfo exe_info = ... // Creation of executable info.
ConcreteMainFactory cmf; // Creation of the factory
return IMainFactory::arcaneMain(exe_info,&cmf);
}
Application information.

Definition at line 93 of file IMainFactory.h.

Constructor & Destructor Documentation

◆ ~IMainFactory()

virtual Arcane::IMainFactory::~IMainFactory ( )
inlinevirtual

Releases resources.

Definition at line 97 of file IMainFactory.h.

Member Function Documentation

◆ createAcceleratorMngRef()

virtual Ref< IAcceleratorMng > Arcane::IMainFactory::createAcceleratorMngRef ( ITraceMng * tm)
pure virtual

Creates a manager for accelerators.

Implemented in Arcane::MainFactory.

References createAcceleratorMngRef().

Referenced by Arcane::SubDomain::build(), and createAcceleratorMngRef().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ createApplication()

virtual IApplication * Arcane::IMainFactory::createApplication ( IArcaneMain * )
pure virtual

Creates an instance of a supervisor.

Implemented in Arcane::MainFactory.

◆ createArcaneMain()

virtual IArcaneMain * Arcane::IMainFactory::createArcaneMain ( const ApplicationInfo & app_info)
pure virtual

◆ createCaseDocument() [1/3]

virtual ICaseDocument * Arcane::IMainFactory::createCaseDocument ( IApplication * )
pure virtual

Creates an instance of a case document.

Implemented in Arcane::MainFactory.

◆ createCaseDocument() [2/3]

virtual ICaseDocument * Arcane::IMainFactory::createCaseDocument ( IApplication * ,
const String & lang )
pure virtual

Creates an instance of a case document for a given language lang.

Implemented in Arcane::MainFactory.

◆ createCaseDocument() [3/3]

virtual ICaseDocument * Arcane::IMainFactory::createCaseDocument ( IApplication * ,
IXmlDocumentHolder * doc )
pure virtual

Creates an instance of a case document.

Implemented in Arcane::MainFactory.

◆ createCaseMng()

virtual ICaseMng * Arcane::IMainFactory::createCaseMng ( ISubDomain * )
pure virtual

Creates an instance of the case manager.

Implemented in Arcane::MainFactory.

Referenced by Arcane::SubDomain::build().

Here is the caller graph for this function:

◆ createCheckpointMng()

virtual ICheckpointMng * Arcane::IMainFactory::createCheckpointMng ( ISubDomain * )
pure virtual

Creates an instance of the checkpoint manager.

Implemented in Arcane::MainFactory.

Referenced by Arcane::SubDomain::build().

Here is the caller graph for this function:

◆ createDataFactory()

virtual IDataFactory * Arcane::IMainFactory::createDataFactory ( IApplication * )
pure virtual

Creates a factory for data.

Implemented in Arcane::MainFactory.

References createDataFactory().

Referenced by createDataFactory().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ createDataFactoryMngRef()

virtual Ref< IDataFactoryMng > Arcane::IMainFactory::createDataFactoryMngRef ( IApplication * )
pure virtual

Creates a factory manager for data.

Implemented in Arcane::MainFactory.

References createDataFactoryMngRef().

Referenced by createDataFactoryMngRef().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ createEntryPointMng()

virtual IEntryPointMng * Arcane::IMainFactory::createEntryPointMng ( ISubDomain * )
pure virtual

Creates an instance of the entry point manager.

Implemented in Arcane::MainFactory.

Referenced by Arcane::SubDomain::build().

Here is the caller graph for this function:

◆ createIOMng() [1/2]

virtual IIOMng * Arcane::IMainFactory::createIOMng ( IApplication * )
pure virtual

Creates an instance of the I/O manager.

Implemented in Arcane::MainFactory.

Referenced by Arcane::SubDomain::build().

Here is the caller graph for this function:

◆ createIOMng() [2/2]

virtual IIOMng * Arcane::IMainFactory::createIOMng ( IParallelMng * pm)
pure virtual

Creates an instance of the I/O manager for the parallelism manager pm.

Implemented in Arcane::MainFactory.

◆ createLoadBalanceMng()

virtual ILoadBalanceMng * Arcane::IMainFactory::createLoadBalanceMng ( ISubDomain * sd)
pure virtual

Creates a description manager for load balancing.

Implemented in Arcane::MainFactory.

References createLoadBalanceMng().

Referenced by createLoadBalanceMng(), and Arcane::SubDomain::initialize().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ createMesh() [1/6]

virtual IPrimaryMesh * Arcane::IMainFactory::createMesh ( ISubDomain * sub_domain,
const String & name )
pure virtual

Creates or retrieves a mesh.

Creates or retrieves a mesh named name for the sub-domain sub_domain.

If the sub-domain already has a mesh with the name name, the latter is returned.

Implemented in Arcane::MainFactory.

References createMesh().

Referenced by createMesh(), createMesh(), createMesh(), createMesh(), createMesh(), createMesh(), and Arcane::MeshReaderMng::readMesh().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ createMesh() [2/6]

virtual IPrimaryMesh * Arcane::IMainFactory::createMesh ( ISubDomain * sub_domain,
const String & name,
bool is_amr )
pure virtual

Creates or retrieves a mesh.

Creates or retrieves a mesh named name for the sub-domain sub_domain.

If the sub-domain already has a mesh with the name name, the latter is returned.

Implemented in Arcane::MainFactory.

References createMesh().

Here is the call graph for this function:

◆ createMesh() [3/6]

virtual IPrimaryMesh * Arcane::IMainFactory::createMesh ( ISubDomain * sub_domain,
const String & name,
eMeshAMRKind amr_type )
pure virtual

Creates or retrieves a mesh.

Creates or retrieves a mesh named name for the sub-domain sub_domain.

If the sub-domain already has a mesh with the name name, the latter is returned.

Implemented in Arcane::MainFactory.

References createMesh().

Here is the call graph for this function:

◆ createMesh() [4/6]

virtual IPrimaryMesh * Arcane::IMainFactory::createMesh ( ISubDomain * sub_domain,
IParallelMng * pm,
const String & name )
pure virtual

Creates or retrieves a mesh.

Creates or retrieves a mesh named name for the sub-domain sub_domain associated with the parallelism manager pm. If the sub-domain already has a mesh with the name name, the latter is returned.

The parallelism manager must be the same as that of the sub-domain or derived from it.

Implemented in Arcane::MainFactory.

References createMesh().

Here is the call graph for this function:

◆ createMesh() [5/6]

virtual IPrimaryMesh * Arcane::IMainFactory::createMesh ( ISubDomain * sub_domain,
IParallelMng * pm,
const String & name,
bool is_amr )
pure virtual

Creates or retrieves a mesh.

Creates or retrieves a mesh named name for the sub-domain sub_domain associated with the parallelism manager pm. If the sub-domain already has a mesh with the name name, the latter is returned.

The parallelism manager must be the same as that of the sub-domain or derived from it.

Implemented in Arcane::MainFactory.

References createMesh().

Here is the call graph for this function:

◆ createMesh() [6/6]

virtual IPrimaryMesh * Arcane::IMainFactory::createMesh ( ISubDomain * sub_domain,
IParallelMng * pm,
const String & name,
eMeshAMRKind amr_type )
pure virtual

Creates or retrieves a mesh.

Creates or retrieves a mesh named name for the sub-domain sub_domain associated with the parallelism manager pm. If the sub-domain already has a mesh with the name name, the latter is returned.

The parallelism manager must be the same as that of the sub-domain or derived from it.

Implemented in Arcane::MainFactory.

References createMesh().

Here is the call graph for this function:

◆ createModuleMaster()

virtual IModuleMaster * Arcane::IMainFactory::createModuleMaster ( ISubDomain * sd)
pure virtual

Creates the master module for the sub-domain sd.

Implemented in Arcane::MainFactory.

References createModuleMaster().

Referenced by createModuleMaster(), and Arcane::SubDomain::initialize().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ createModuleMng()

virtual IModuleMng * Arcane::IMainFactory::createModuleMng ( ISubDomain * )
pure virtual

Creates an instance of the module manager.

Implemented in Arcane::MainFactory.

Referenced by Arcane::SubDomain::build().

Here is the caller graph for this function:

◆ createPropertyMng()

virtual IPropertyMng * Arcane::IMainFactory::createPropertyMng ( ISubDomain * )
pure virtual

Creates an instance of the property manager.

Implemented in Arcane::MainFactory.

References createPropertyMng().

Referenced by createPropertyMng().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ createPropertyMngReference()

virtual Ref< IPropertyMng > Arcane::IMainFactory::createPropertyMngReference ( ISubDomain * )
pure virtual

Creates an instance of the property manager.

Implemented in Arcane::MainFactory.

References createPropertyMngReference().

Referenced by Arcane::SubDomain::build(), and createPropertyMngReference().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ createServiceLoader()

virtual IServiceLoader * Arcane::IMainFactory::createServiceLoader ( )
pure virtual

Creates an instance of the service loader.

Implemented in Arcane::MainFactory.

Referenced by Arcane::InternalInfosDumper::dumpArcaneDatabase(), Arcane::InternalInfosDumper::dumpInternalAllInfos(), Arcane::SubDomain::initialize(), and Arcane::TimeLoopMng::setUsedTimeLoop().

Here is the caller graph for this function:

◆ createServiceMng()

virtual IServiceMng * Arcane::IMainFactory::createServiceMng ( IBase * )
pure virtual

Creates an instance of the service manager.

Implemented in Arcane::MainFactory.

Referenced by Arcane::Session::build(), and Arcane::SubDomain::build().

Here is the caller graph for this function:

◆ createSubMesh()

virtual IMesh * Arcane::IMainFactory::createSubMesh ( IMesh * mesh,
const ItemGroup & group,
const String & name )
pure virtual

Creates a sub-mesh for the mesh mesh, named name.

The sub-mesh is initialized with the items of the group group. Currently, this group cannot be a complete group (isAllItems()) nor a calculated group (if not incremental).

Implemented in Arcane::MainFactory.

References createSubMesh().

Referenced by createSubMesh().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ createTimeHistoryMng()

virtual ITimeHistoryMng * Arcane::IMainFactory::createTimeHistoryMng ( ISubDomain * )
pure virtual

Creates an instance of the time history manager.

Implemented in Arcane::MainFactory.

Referenced by Arcane::SubDomain::initialize().

Here is the caller graph for this function:

◆ createTimeLoop()

virtual ITimeLoop * Arcane::IMainFactory::createTimeLoop ( IApplication * sm,
const String & name )
pure virtual

Creates a time loop named name.

Implemented in Arcane::MainFactory.

Referenced by Arcane::TimeLoopMng::createTimeLoop(), and Arcane::TimeLoopReader::readTimeLoops().

Here is the caller graph for this function:

◆ createTimeLoopMng()

virtual ITimeLoopMng * Arcane::IMainFactory::createTimeLoopMng ( ISubDomain * )
pure virtual

Creates an instance of the time loop manager.

Implemented in Arcane::MainFactory.

Referenced by Arcane::SubDomain::build().

Here is the caller graph for this function:

◆ createTimeStats() [1/2]

virtual ARCANE_DEPRECATED_116 ITimeStats * Arcane::IMainFactory::createTimeStats ( ISubDomain * )
pure virtual

Creates an instance of execution time statistics.

Use the overloaded createTimeStats(ITimerMng*,ITraceMng*,const String& name).

Implemented in Arcane::MainFactory.

◆ createTimeStats() [2/2]

virtual ITimeStats * Arcane::IMainFactory::createTimeStats ( ITimerMng * tim,
ITraceMng * trm,
const String & name )
pure virtual

Creates an instance of execution time statistics.

Implemented in Arcane::MainFactory.

◆ createTraceMng()

virtual ITraceMng * Arcane::IMainFactory::createTraceMng ( )
pure virtual

Creates a trace manager.

The returned instance must be initialized via an ITraceMngPolicy.

Implemented in Arcane::MainFactory.

References createTraceMng().

Referenced by Arcane::Application::createAndInitializeTraceMng(), and createTraceMng().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ createTraceMngPolicy()

virtual ITraceMngPolicy * Arcane::IMainFactory::createTraceMngPolicy ( IApplication * app)
pure virtual

Creates a configuration manager for a trace manager.

Implemented in Arcane::MainFactory.

References createTraceMngPolicy().

Referenced by createTraceMngPolicy().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ createVariableMng()

virtual IVariableMng * Arcane::IMainFactory::createVariableMng ( ISubDomain * )
pure virtual

Creates an instance of the variable manager.

Implemented in Arcane::MainFactory.

Referenced by Arcane::SubDomain::build().

Here is the caller graph for this function:

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