Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
ArcaneLauncher.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2024 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/* ArcaneLauncher.h (C) 2000-2024 */
9/* */
10/* Classe gérant l'exécution. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_LAUNCHER_ARCANELAUNCHER_H
13#define ARCANE_LAUNCHER_ARCANELAUNCHER_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/launcher/LauncherGlobal.h"
18
19// Les fichiers suivants ne sont pas directement utilisés dans ce '.h'
20// mais sont ajoutés pour que le code utilisateur n'ait besoin d'inclure
21// que 'ArcaneLauncher.h'.
22#include "arcane/utils/ApplicationInfo.h"
23#include "arcane/utils/CommandLineArguments.h"
24
25#include "arcane/core/ApplicationBuildInfo.h"
26#include "arcane/core/DotNetRuntimeInitialisationInfo.h"
27#include "arcane/core/AcceleratorRuntimeInitialisationInfo.h"
28
29#include "arcane/launcher/DirectExecutionContext.h"
30#include "arcane/launcher/DirectSubDomainExecutionContext.h"
31#include "arcane/launcher/IDirectExecutionContext.h"
32#include "arcane/launcher/StandaloneAcceleratorMng.h"
33#include "arcane/launcher/StandaloneSubDomain.h"
34
35#include <functional>
36
37/*---------------------------------------------------------------------------*/
38/*---------------------------------------------------------------------------*/
39
40namespace Arcane
41{
42class IMainFactory;
43
44/*---------------------------------------------------------------------------*/
45/*---------------------------------------------------------------------------*/
83class ARCANE_LAUNCHER_EXPORT ArcaneLauncher
84{
86
87 public:
88
100 static void init(const CommandLineArguments& args);
101
105 static bool isInitialized();
106
116 static int run();
117
124 static int run(std::function<int(DirectExecutionContext&)> func);
125
136 static int run(std::function<int(DirectSubDomainExecutionContext&)> func);
137
145 static void setDefaultMainFactory(IMainFactory* mf);
146
156 static ApplicationInfo& applicationInfo();
157
167 static ApplicationBuildInfo& applicationBuildInfo();
168
175 static DotNetRuntimeInitialisationInfo& dotNetRuntimeInitialisationInfo();
176
183 static AcceleratorRuntimeInitialisationInfo& acceleratorRuntimeInitialisationInfo();
184
186 static String getExeDirectory();
187
197 static StandaloneAcceleratorMng createStandaloneAcceleratorMng();
198
213 static StandaloneSubDomain createStandaloneSubDomain(const String& case_file_name);
214
215 public:
216
220 ARCCORE_DEPRECATED_2020("Use run(func) instead")
221 static int runDirect(std::function<int(IDirectExecutionContext*)> func);
222
226 ARCCORE_DEPRECATED_2020("Use init(args) instead")
227 static void setCommandLineArguments(const CommandLineArguments& args)
228 {
229 init(args);
230 }
231
232 private:
233
234 static void _initStandalone();
235 static void _notifyRemoveStandaloneSubDomain();
236};
237
238/*---------------------------------------------------------------------------*/
239/*---------------------------------------------------------------------------*/
240
241} // End namespace Arcane
242
243/*---------------------------------------------------------------------------*/
244/*---------------------------------------------------------------------------*/
245
246#endif
Informations pour construire une instance de IApplication.
Informations sur une application.
Classe de gestion de l'exécution.
Arguments de la ligne de commande.
Contexte d'exécution directe.
Contexte d'exécution directe avec création d'un sous-domaine.
Informations pour l'initialisation du runtime '.Net'.
Implémentation de la classe de gestion de l'exécution.
Manufacture des classes d'Arcane.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:120
Implémentation autonome de 'IAcceleratorMng.h'.
Implémentation autonome d'un sous-domaine.
Chaîne de caractères unicode.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-