Arcane  4.2.1.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-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/* ArcaneLauncher.h (C) 2000-2026 */
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/*---------------------------------------------------------------------------*/
46
82class ARCANE_LAUNCHER_EXPORT ArcaneLauncher
83{
84 friend StandaloneSubDomain;
85
86 public:
87
99 static void init(const CommandLineArguments& args);
100
104 static bool isInitialized();
105
115 static int run();
116
123 static int run(std::function<int(DirectExecutionContext&)> func);
124
135 static int run(std::function<int(DirectSubDomainExecutionContext&)> func);
136
144 static void setDefaultMainFactory(IMainFactory* mf);
145
156
167
175
183
185 static String getExeDirectory();
186
197
217 static StandaloneSubDomain createStandaloneSubDomain(const String& case_file_name,
218 Span<const std::byte> file_content = {});
219
228 static bool needHelp();
229
238 static bool printHelp();
239
240 public:
241
245 ARCCORE_DEPRECATED_2020("Utiliser run(func) à la place")
246 static int runDirect(std::function<int(IDirectExecutionContext*)> func);
247
251 ARCCORE_DEPRECATED_2020("Utiliser init(args) à la place")
253 {
254 init(args);
255 }
256
257 private:
258
259 static void _initStandalone();
260 static void _notifyRemoveStandaloneSubDomain();
261};
262
263/*---------------------------------------------------------------------------*/
264/*---------------------------------------------------------------------------*/
265
266} // End namespace Arcane
267
268/*---------------------------------------------------------------------------*/
269/*---------------------------------------------------------------------------*/
270
271#endif
Informations pour construire une instance de IApplication.
Informations sur une application.
Classe de gestion de l'exécution.
static StandaloneAcceleratorMng createStandaloneAcceleratorMng()
Créé une implémentation autonome pour gérer les accélérateurs.
static int run()
Point d'entrée de l'exécutable dans Arcane.
static String getExeDirectory()
Nom complet du répertoire où se trouve l'exécutable.
static DotNetRuntimeInitialisationInfo & dotNetRuntimeInitialisationInfo()
Informations pour l'initialisation du runtime '.Net'.
static bool needHelp()
Demande d'aide avec l'option "--help" ou "-h".
static void init(const CommandLineArguments &args)
Positionne les informations à partir des arguments de la ligne de commande et initialise le lanceur.
static ApplicationBuildInfo & applicationBuildInfo()
Informations sur les paramêtre d'exécutions de l'application.
static StandaloneSubDomain createStandaloneSubDomain(const String &case_file_name, Span< const std::byte > file_content={})
Créé une implémentation autonome pour gérer un sous-domaine.
static bool isInitialized()
Indique si init() a déjà été appelé.
static bool printHelp()
Affichage de l'aide générique Arcane.
static ApplicationInfo & applicationInfo()
Informations sur l'application.
static AcceleratorRuntimeInitialisationInfo & acceleratorRuntimeInitialisationInfo()
Informations pour l'initialisation des accélerateurs.
static int runDirect(std::function< int(IDirectExecutionContext *)> func)
static void setDefaultMainFactory(IMainFactory *mf)
Positionne la fabrique par défaut pour créer les différents gestionnaires.
static void setCommandLineArguments(const CommandLineArguments &args)
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.
Vue d'un tableau d'éléments de type T.
Definition Span.h:633
Implémentation autonome de 'IAcceleratorMng.h'.
Chaîne de caractères unicode.
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --