Arcane  v3.16.0.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-2025 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-2025 */
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{
85 friend StandaloneSubDomain;
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
157
168
176
184
186 static String getExeDirectory();
187
198
213 static StandaloneSubDomain createStandaloneSubDomain(const String& case_file_name);
214
223 static bool needHelp();
224
233 static bool printHelp();
234
235 public:
236
240 ARCCORE_DEPRECATED_2020("Use run(func) instead")
241 static int runDirect(std::function<int(IDirectExecutionContext*)> func);
242
246 ARCCORE_DEPRECATED_2020("Use init(args) instead")
248 {
249 init(args);
250 }
251
252 private:
253
254 static void _initStandalone();
255 static void _notifyRemoveStandaloneSubDomain();
256};
257
258/*---------------------------------------------------------------------------*/
259/*---------------------------------------------------------------------------*/
260
261} // End namespace Arcane
262
263/*---------------------------------------------------------------------------*/
264/*---------------------------------------------------------------------------*/
265
266#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)
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)
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.
Implémentation autonome de 'IAcceleratorMng.h'.
Chaîne de caractères unicode.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-