Arcane  4.1.12.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 IArcaneMaincreateArcaneMain (const ApplicationInfo &app_info)=0
 Creates an instance of IArcaneMain.
virtual IApplicationcreateApplication (IArcaneMain *)=0
 Creates an instance of a supervisor.
virtual IVariableMngcreateVariableMng (ISubDomain *)=0
 Creates an instance of the variable manager.
virtual IModuleMngcreateModuleMng (ISubDomain *)=0
 Creates an instance of the module manager.
virtual IEntryPointMngcreateEntryPointMng (ISubDomain *)=0
 Creates an instance of the entry point manager.
virtual ITimeHistoryMngcreateTimeHistoryMng (ISubDomain *)=0
 Creates an instance of the time history manager.
virtual ICaseMngcreateCaseMng (ISubDomain *)=0
 Creates an instance of the case manager.
virtual ICaseDocumentcreateCaseDocument (IApplication *)=0
 Creates an instance of a case document.
virtual ICaseDocumentcreateCaseDocument (IApplication *, const String &lang)=0
 Creates an instance of a case document for a given language lang.
virtual ICaseDocumentcreateCaseDocument (IApplication *, IXmlDocumentHolder *doc)=0
 Creates an instance of a case document.
virtual ARCANE_DEPRECATED_116 ITimeStatscreateTimeStats (ISubDomain *)=0
 Creates an instance of execution time statistics.
virtual ITimeStatscreateTimeStats (ITimerMng *tim, ITraceMng *trm, const String &name)=0
 Creates an instance of execution time statistics.
virtual ITimeLoopMngcreateTimeLoopMng (ISubDomain *)=0
 Creates an instance of the time loop manager.
virtual ITimeLoopcreateTimeLoop (IApplication *sm, const String &name)=0
 Creates a time loop named name.
virtual IIOMngcreateIOMng (IApplication *)=0
 Creates an instance of the I/O manager.
virtual IIOMngcreateIOMng (IParallelMng *pm)=0
 Creates an instance of the I/O manager for the parallelism manager pm.
virtual IServiceLoadercreateServiceLoader ()=0
 Creates an instance of the service loader.
virtual IServiceMngcreateServiceMng (IBase *)=0
 Creates an instance of the service manager.
virtual ICheckpointMngcreateCheckpointMng (ISubDomain *)=0
 Creates an instance of the checkpoint manager.
virtual IPropertyMngcreatePropertyMng (ISubDomain *)=0
 Creates an instance of the property manager.
virtual Ref< IPropertyMngcreatePropertyMngReference (ISubDomain *)=0
 Creates an instance of the property manager.
virtual IPrimaryMeshcreateMesh (ISubDomain *sub_domain, const String &name)=0
 Creates or retrieves a mesh.
virtual IPrimaryMeshcreateMesh (ISubDomain *sub_domain, const String &name, bool is_amr)=0
 Creates or retrieves a mesh.
virtual IPrimaryMeshcreateMesh (ISubDomain *sub_domain, const String &name, eMeshAMRKind amr_type)=0
 Creates or retrieves a mesh.
virtual IPrimaryMeshcreateMesh (ISubDomain *sub_domain, IParallelMng *pm, const String &name)=0
 Creates or retrieves a mesh.
virtual IPrimaryMeshcreateMesh (ISubDomain *sub_domain, IParallelMng *pm, const String &name, bool is_amr)=0
 Creates or retrieves a mesh.
virtual IPrimaryMeshcreateMesh (ISubDomain *sub_domain, IParallelMng *pm, const String &name, eMeshAMRKind amr_type)=0
 Creates or retrieves a mesh.
virtual IMeshcreateSubMesh (IMesh *mesh, const ItemGroup &group, const String &name)=0
 Creates a sub-mesh for the mesh mesh, named name.
virtual IDataFactorycreateDataFactory (IApplication *)=0
 Creates a factory for data.
virtual Ref< IDataFactoryMngcreateDataFactoryMngRef (IApplication *)=0
 Creates a factory manager for data.
virtual Ref< IAcceleratorMngcreateAcceleratorMngRef (ITraceMng *tm)=0
 Creates a manager for accelerators.
virtual ITraceMngcreateTraceMng ()=0
 Creates a trace manager.
virtual ITraceMngPolicycreateTraceMngPolicy (IApplication *app)=0
 Creates a configuration manager for a trace manager.
virtual IModuleMastercreateModuleMaster (ISubDomain *sd)=0
 Creates the master module for the sub-domain sd.
virtual ILoadBalanceMngcreateLoadBalanceMng (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: