Arcane  4.1.12.0
Developer documentation
Loading...
Searching...
No Matches
IMainFactory.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2026 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
4// See the top-level COPYRIGHT file for details.
5// SPDX-License-Identifier: Apache-2.0
6//-----------------------------------------------------------------------------
7/*---------------------------------------------------------------------------*/
8/* IMainFactory.h (C) 2000-2025 */
9/* */
10/* Interface of Arcane's AbstractFactory. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CORE_IMAINFACTORY_H
13#define ARCANE_CORE_IMAINFACTORY_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
18
19/*---------------------------------------------------------------------------*/
20/*---------------------------------------------------------------------------*/
21
22namespace Arcane
23{
24
25/*---------------------------------------------------------------------------*/
26/*---------------------------------------------------------------------------*/
27
28class IBase;
29class ISubDomain;
30class ApplicationInfo;
31class IArcaneMain;
33class IApplication;
34class IRegistry;
35class IVariableMng;
36class IModuleMng;
37class IEntryPointMng;
38class ITimeHistoryMng;
39class ICaseMng;
40class ICaseDocument;
41class ITimerMng;
42class ITimeLoopMng;
43class ITimeLoop;
44class IIOMng;
45class IServiceMng;
46class IServiceLoader;
48class IMesh;
49class IDataFactory;
50class ITimeStats;
51class IParallelMng;
52class ItemGroup;
53class IPrimaryMesh;
54class ITraceMngPolicy;
55class IModuleMaster;
56class ILoadBalanceMng;
57class ICheckpointMng;
58class IPropertyMng;
59class IDataFactoryMng;
60
61/*---------------------------------------------------------------------------*/
62/*---------------------------------------------------------------------------*/
63
94{
95 public:
96
97 virtual ~IMainFactory() {}
98
99 public:
100 public:
101
103 virtual IArcaneMain* createArcaneMain(const ApplicationInfo& app_info) = 0;
104
105 public:
106
109
112
115
118
121
124
127
130
133
139 virtual ARCANE_DEPRECATED_116 ITimeStats* createTimeStats(ISubDomain*) = 0;
140
142 virtual ITimeStats* createTimeStats(ITimerMng* tim, ITraceMng* trm, const String& name) = 0;
143
146
148 virtual ITimeLoop* createTimeLoop(IApplication* sm, const String& name) = 0;
149
152
154 virtual IIOMng* createIOMng(IParallelMng* pm) = 0;
155
158
161
164
166 ARCCORE_DEPRECATED_2020("Use createPropertyMngReference() instead")
168
171
180 virtual IPrimaryMesh* createMesh(ISubDomain* sub_domain, const String& name) = 0;
181
190 ARCANE_DEPRECATED_REASON("Y2023: Use createMesh(..., eMeshAMRKind amr_type) instead")
191 virtual IPrimaryMesh* createMesh(ISubDomain* sub_domain, const String& name, bool is_amr) = 0;
192
201 virtual IPrimaryMesh* createMesh(ISubDomain* sub_domain, const String& name, eMeshAMRKind amr_type) = 0;
202
214 const String& name) = 0;
215
226 ARCANE_DEPRECATED_REASON("Y2023: Use createMesh(..., eMeshAMRKind amr_type) instead")
228 const String& name, bool is_amr) = 0;
229
241 const String& name, eMeshAMRKind amr_type) = 0;
242
250 virtual IMesh* createSubMesh(IMesh* mesh, const ItemGroup& group, const String& name) = 0;
251
253 ARCCORE_DEPRECATED_2020("Use createDataFactoryMngRef() instead")
255
258
261
267 virtual ITraceMng* createTraceMng() = 0;
268
273
278
283
284 private:
285};
286
287/*---------------------------------------------------------------------------*/
288/*---------------------------------------------------------------------------*/
289
290} // End namespace Arcane
291
292/*---------------------------------------------------------------------------*/
293/*---------------------------------------------------------------------------*/
294
295#endif
Declarations of Arcane's general types.
Application information.
Application interface.
Interface of the code management class.
Definition IArcaneMain.h:55
Interface of the base class for main arcane objects.
Definition IBase.h:32
Interface of a class managing an XML document of the dataset.
Case manager interface.
Definition ICaseMng.h:57
Interface of the checkpoint information manager.
Interface of the data factory manager.
Interface of a data factory.
Interface for the entry point manager.
Interface of the input/output manager.
Definition IIOMng.h:37
Interface for registering variables for load balancing.
Factory for Arcane classes.
virtual ITraceMng * createTraceMng()=0
Creates a trace manager.
virtual Ref< IPropertyMng > createPropertyMngReference(ISubDomain *)=0
Creates an instance of the property manager.
virtual IServiceMng * createServiceMng(IBase *)=0
Creates an instance of the service manager.
virtual ITraceMngPolicy * createTraceMngPolicy(IApplication *app)=0
Creates a configuration manager for a trace manager.
virtual Ref< IDataFactoryMng > createDataFactoryMngRef(IApplication *)=0
Creates a factory manager for data.
virtual IEntryPointMng * createEntryPointMng(ISubDomain *)=0
Creates an instance of the entry point manager.
virtual ICheckpointMng * createCheckpointMng(ISubDomain *)=0
Creates an instance of the checkpoint manager.
virtual ITimeLoopMng * createTimeLoopMng(ISubDomain *)=0
Creates an instance of the time loop manager.
virtual IApplication * createApplication(IArcaneMain *)=0
Creates an instance of a supervisor.
virtual ITimeHistoryMng * createTimeHistoryMng(ISubDomain *)=0
Creates an instance of the time history manager.
virtual IPrimaryMesh * createMesh(ISubDomain *sub_domain, const String &name)=0
Creates or retrieves a mesh.
virtual IPropertyMng * createPropertyMng(ISubDomain *)=0
Creates an instance of the property manager.
virtual ~IMainFactory()
Releases resources.
virtual ARCANE_DEPRECATED_116 ITimeStats * createTimeStats(ISubDomain *)=0
Creates an instance of execution time statistics.
virtual IIOMng * createIOMng(IParallelMng *pm)=0
Creates an instance of the I/O manager for the parallelism manager pm.
virtual IMesh * createSubMesh(IMesh *mesh, const ItemGroup &group, const String &name)=0
Creates a sub-mesh for the mesh mesh, named name.
virtual IServiceLoader * createServiceLoader()=0
Creates an instance of the service loader.
virtual IDataFactory * createDataFactory(IApplication *)=0
Creates a factory for data.
virtual ILoadBalanceMng * createLoadBalanceMng(ISubDomain *sd)=0
Creates a description manager for load balancing.
virtual ITimeStats * createTimeStats(ITimerMng *tim, ITraceMng *trm, const String &name)=0
Creates an instance of execution time statistics.
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 IModuleMng * createModuleMng(ISubDomain *)=0
Creates an instance of the module manager.
virtual IVariableMng * createVariableMng(ISubDomain *)=0
Creates an instance of the variable manager.
virtual ITimeLoop * createTimeLoop(IApplication *sm, const String &name)=0
Creates a time loop named name.
virtual IModuleMaster * createModuleMaster(ISubDomain *sd)=0
Creates the master module for the sub-domain sd.
virtual IArcaneMain * createArcaneMain(const ApplicationInfo &app_info)=0
Creates an instance of IArcaneMain.
virtual Ref< IAcceleratorMng > createAcceleratorMngRef(ITraceMng *tm)=0
Creates a manager for accelerators.
virtual ICaseDocument * createCaseDocument(IApplication *, const String &lang)=0
Creates an instance of a case document for a given language lang.
virtual IIOMng * createIOMng(IApplication *)=0
Creates an instance of the I/O manager.
virtual ICaseDocument * createCaseDocument(IApplication *, IXmlDocumentHolder *doc)=0
Creates an instance of a case document.
Interface of the main module.
Module manager interface.
Definition IModuleMng.h:39
Interface of the parallelism manager for a subdomain.
Abstract class of the parallelism supervisor.
Interface of the property manager.
Service loading interface.
Service manager interface.
Definition IServiceMng.h:32
Interface of the subdomain manager.
Definition ISubDomain.h:75
Class managing a history of values.
Interface for the time loop manager.
Interface of a time loop.
Definition ITimeLoop.h:33
Interface managing execution time statistics.
Definition ITimeStats.h:44
Interface of a timer manager.
Definition ITimerMng.h:50
Interface for the configuration manager of a trace manager.
Variable manager interface.
Manager of a DOM document.
Mesh entity group.
Definition ItemGroup.h:51
Reference to an instance.
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --
eMeshAMRKind
AMR mesh type.
Definition MeshKind.h:49