Arcane  v3.16.0.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
IApplication.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2022 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/* IApplication.h (C) 2000-2022 */
9/* */
10/* Interface de l'application. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_IAPPLICATION_H
13#define ARCANE_IAPPLICATION_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/ArcaneTypes.h"
18#include "arcane/IBase.h"
19
20/*---------------------------------------------------------------------------*/
21/*---------------------------------------------------------------------------*/
22
23namespace Arcane
24{
25
26/*---------------------------------------------------------------------------*/
27/*---------------------------------------------------------------------------*/
28
29class ApplicationInfo;
30class IMainFactory;
31class IArcaneMain;
32class IRessourceMng;
33class IIOMng;
34class XmlNode;
35class ICodeService;
36class IParallelMng;
38class ISession;
39class IDataFactory;
41class ITraceMngPolicy;
45
46/*---------------------------------------------------------------------------*/
47/*---------------------------------------------------------------------------*/
48/*!
49 * \brief Interface de l'application.
50 *
51 Cette classe renferme les informations sur la configuration de l'exécutable.
52
53 Il n'existe qu'une seule instance de cette classe par processus (singleton).
54 */
55class ARCANE_CORE_EXPORT IApplication
56: public IBase
57{
58 public:
59
60 //! Gestionnaire superviseur du parallélisme
62
63 //! Gestionnaire un superviseur séquentiel du parallélisme
65
66 //! Gestionnaire des entrées/sorties.
67 virtual IIOMng* ioMng() =0;
68
69 //! Gestionnaire des configurations d'exécution
71
72 //! Fabrique de donnée
73 ARCCORE_DEPRECATED_2021("Use dataFactoryMng() instead")
75
76 //! Fabrique de donnée
77 virtual IDataFactoryMng* dataFactoryMng() const =0;
78
79 //! Informations sur l'exécutable
80 virtual const ApplicationInfo& applicationInfo() const =0;
81
82 //! Informations sur les paramètres de construction de l'instance
83 virtual const ApplicationBuildInfo& applicationBuildInfo() const =0;
84
85 //! Informations d'initialisation du runtime '.Net'.
87
88 //! Informations d'initialisation du runtime pour les accélérateurs
90
91 //! Numéro de version de l'application
92 virtual String versionStr() const =0;
93
94 //! Numéro de version principal (sans la béta) de l'application
95 virtual String mainVersionStr() const =0;
96
97 //! Numéro de version majeur et mineure sous la forme M.m
98 virtual String majorAndMinorVersionStr() const =0;
99
100 //! Informations sur les options de compilation de l'application
101 virtual String targetinfoStr() const =0;
102
103 //! Nom du code
104 virtual String codeName() const =0;
105
106 //! Nom de l'application
107 virtual String applicationName() const =0;
108
109 //! Nom de l'utilisateur
110 virtual String userName() const =0;
111
112 /*
113 * \brief Contenu du fichier Xml de configuration du code.
114 */
115 virtual ByteConstSpan configBuffer() const =0;
116
117 /*
118 * \brief Contenu du fichier Xml de configuration utilisateur
119 */
120 virtual ByteConstSpan userConfigBuffer() const =0;
121
122 //! Chemin du répertoire des configurations utilisateur
123 virtual String userConfigPath() const =0;
124
125 //! Ajoute la session \a session
126 virtual void addSession(ISession* session) =0;
127
128 //! Supprime la session \a session
129 virtual void removeSession(ISession* session) =0;
130
131 //! Liste des sessions
133
134 //! Manufacture principale.
135 virtual IMainFactory* mainFactory() const =0;
136
137 //! Liste des informations sur les fabriques des modules
139
140 //! Liste des fabriques de service.
142
143 /*!
144 * \brief Retourne le chargeur de cas correspondant au fichier
145 * donné par \a file_name.
146 */
147 virtual Ref<ICodeService> getCodeService(const String& file_name) =0;
148
149 //! Indique que certains objets sont gérés via un ramasse miette.
150 virtual bool hasGarbageCollector() const =0;
151
152 //! Service gérant les systèmes d'unités physiques
154
155 //! Politique de configuration d'un gestionnaire de trace.
157
158 /*!
159 * \brief Créé et initialise une instance de ITraceMng.
160 *
161 * L'instance créée est initialisée suivant la politique spécifiée
162 * par getTraceMngPolicy().
163 * Si les sorties fichiers sont activées, l'instance créé sortira
164 * ses informations dans un fichier suffixé par \a file_suffix.
165 *
166 * Les propriétés de verbosité de l'instance créée sont héritées de
167 * \a parent_trace s'il n'est pas nul.
168 */
170 const String& file_suffix) =0;
171};
172
173/*---------------------------------------------------------------------------*/
174/*---------------------------------------------------------------------------*/
175
176} // End namespace Arcane
177
178/*---------------------------------------------------------------------------*/
179/*---------------------------------------------------------------------------*/
180
181#endif
Informations pour construire une instance de IApplication.
Informations sur une application.
Informations pour l'initialisation du runtime '.Net'.
Interface de l'application.
virtual void addSession(ISession *session)=0
Ajoute la session session.
virtual SessionCollection sessions()=0
Liste des sessions.
virtual ITraceMngPolicy * getTraceMngPolicy()=0
Politique de configuration d'un gestionnaire de trace.
virtual IMainFactory * mainFactory() const =0
Manufacture principale.
virtual IPhysicalUnitSystemService * getPhysicalUnitSystemService()=0
Service gérant les systèmes d'unités physiques.
virtual IIOMng * ioMng()=0
Gestionnaire des entrées/sorties.
virtual ModuleFactoryInfoCollection moduleFactoryInfos()=0
Liste des informations sur les fabriques des modules.
virtual String mainVersionStr() const =0
Numéro de version principal (sans la béta) de l'application.
virtual String applicationName() const =0
Nom de l'application.
virtual IDataFactory * dataFactory()=0
Fabrique de donnée.
virtual const ApplicationBuildInfo & applicationBuildInfo() const =0
Informations sur les paramètres de construction de l'instance.
virtual IConfigurationMng * configurationMng() const =0
Gestionnaire des configurations d'exécution.
virtual void removeSession(ISession *session)=0
Supprime la session session.
virtual Ref< ICodeService > getCodeService(const String &file_name)=0
Retourne le chargeur de cas correspondant au fichier donné par file_name.
virtual bool hasGarbageCollector() const =0
Indique que certains objets sont gérés via un ramasse miette.
virtual String majorAndMinorVersionStr() const =0
Numéro de version majeur et mineure sous la forme M.m.
virtual ServiceFactory2Collection serviceFactories2()=0
Liste des fabriques de service.
virtual const AcceleratorRuntimeInitialisationInfo & acceleratorRuntimeInitialisationInfo() const =0
Informations d'initialisation du runtime pour les accélérateurs.
virtual IDataFactoryMng * dataFactoryMng() const =0
Fabrique de donnée.
virtual IParallelSuperMng * parallelSuperMng()=0
Gestionnaire superviseur du parallélisme.
virtual String userName() const =0
Nom de l'utilisateur.
virtual ITraceMng * createAndInitializeTraceMng(ITraceMng *parent_trace, const String &file_suffix)=0
Créé et initialise une instance de ITraceMng.
virtual const ApplicationInfo & applicationInfo() const =0
Informations sur l'exécutable.
virtual String versionStr() const =0
Numéro de version de l'application.
virtual IParallelSuperMng * sequentialParallelSuperMng()=0
Gestionnaire un superviseur séquentiel du parallélisme.
virtual String targetinfoStr() const =0
Informations sur les options de compilation de l'application.
virtual String codeName() const =0
Nom du code.
virtual const DotNetRuntimeInitialisationInfo & dotnetRuntimeInitialisationInfo() const =0
Informations d'initialisation du runtime '.Net'.
virtual String userConfigPath() const =0
Chemin du répertoire des configurations utilisateur.
Interface de la classe de base des objets principaux arcane.
Definition IBase.h:38
Interface d'un chargeur de cas.
Gestionnaire de configuration.
Interface du gestionnaire des entrées sorties.
Definition IIOMng.h:42
Interface du gestionnaire de parallélisme pour un sous-domaine.
Interface d'un gestionnaire de ressource.
Interface d'une session d'exécution d'un cas.
Definition ISession.h:44
Interface du gestionnaire de configuration d'un gestionnnaire de trace.
Interface du gestionnaire de traces.
Référence à une instance.
Chaîne de caractères unicode.
Noeud d'un arbre DOM.
Definition XmlNode.h:51
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
Collection< Internal::IServiceFactory2 * > ServiceFactory2Collection
Collection de fabriques de service.
Collection< IModuleFactoryInfo * > ModuleFactoryInfoCollection
Collection d'informations sur les fabriques de module.
Span< const std::byte > ByteConstSpan
Vue en lecture seule d'un tableau à une dimension de caractères.
Definition UtilsTypes.h:635
Collection< ISession * > SessionCollection
Collection de sessions.