Arcane  v4.1.2.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
ApplicationBuildInfo.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/* ApplicationBuildInfo.h (C) 2000-2025 */
9/* */
10/* Informations pour construire une instance de IApplication. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_UTILS_APPLICATIONBUILDINFO_H
13#define ARCANE_UTILS_APPLICATIONBUILDINFO_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
18
19/*---------------------------------------------------------------------------*/
20/*---------------------------------------------------------------------------*/
21
22namespace Arcane
23{
25
26/*---------------------------------------------------------------------------*/
27/*---------------------------------------------------------------------------*/
28/*!
29 * \brief Informations pour initialiser une application.
30 */
31class ARCANE_CORE_EXPORT ApplicationCoreBuildInfo
32{
33 class CoreImpl;
34
35 public:
36
37 ApplicationCoreBuildInfo();
38 ApplicationCoreBuildInfo(const ApplicationCoreBuildInfo& rhs);
39 ~ApplicationCoreBuildInfo();
40 ApplicationCoreBuildInfo& operator=(const ApplicationCoreBuildInfo& rhs);
41
42 public:
43
44 void setTaskImplementationService(const String& name);
45 void setTaskImplementationServices(const StringList& names);
46 StringList taskImplementationServices() const;
47
48 void setThreadImplementationService(const String& name);
49 void setThreadImplementationServices(const StringList& names);
50 StringList threadImplementationServices() const;
51
52 Int32 nbTaskThread() const;
53 void setNbTaskThread(Integer v);
54
55 protected:
56
57 CoreImpl* m_core = nullptr;
58};
59
60/*---------------------------------------------------------------------------*/
61/*---------------------------------------------------------------------------*/
62/*!
63 * \brief Informations pour construire une instance de IApplication.
64 */
65class ARCANE_CORE_EXPORT ApplicationBuildInfo
66: public ApplicationCoreBuildInfo
67{
68 class Impl;
69
70 public:
71
72 ApplicationBuildInfo();
73 ApplicationBuildInfo(const ApplicationBuildInfo& rhs);
74 ~ApplicationBuildInfo();
75 ApplicationBuildInfo& operator=(const ApplicationBuildInfo& rhs);
76
77 public:
78
79 void setMessagePassingService(const String& name);
80 String messagePassingService() const;
81
82 Int32 nbSharedMemorySubDomain() const;
83 void setNbSharedMemorySubDomain(Int32 v);
84
85 Int32 nbReplicationSubDomain() const;
86 void setNbReplicationSubDomain(Int32 v);
87
88 Int32 nbProcessusSubDomain() const;
89 void setNbProcessusSubDomain(Int32 v);
90
91 /*!
92 * \brief Positionne le fichier de configuration du code.
93 * \sa configFileName().
94 */
95 void setConfigFileName(const String& name);
96
97 /*!
98 * \brief Nom du fichier de configuration du code.
99 *
100 * Par défaut, la valeur est celle de la chaîne vide ("").
101 * Dans ce cas, %Arcane recherche un fichier dont le nom
102 * est codeName() suivi de l'extension `.config`.
103 *
104 * Si la valeur est nulle, alors il n'y a pas de fichier de
105 * configuration chargé.
106 */
107 String configFileName() const;
108
109 /*!
110 * \brief Positionne le niveau de verbosité des messages
111 * sur la sortie standard.
112 */
113 void setOutputLevel(Int32 v);
114 Int32 outputLevel() const;
115
116 /*!
117 * \brief Positionne le niveau de verbosité des messages
118 * des fichiers listings réduits.
119 */
120 void setVerbosityLevel(Int32 v);
121 Int32 verbosityLevel() const;
122
123 Int32 minimalVerbosityLevel() const;
124 void setMinimalVerbosityLevel(Int32 v);
125
126 bool isMasterHasOutputFile() const;
127 void setIsMasterHasOutputFile(bool v);
128
129 /*!
130 * \brief Positionne le répertoire contenant les différentes sorties
131 * de la simulation.
132 *
133 * Parmi ces sorties on trouve le dépouillement, les traces de profilage,
134 * les sorties listings, ...
135 */
136 void setOutputDirectory(const String& name);
137 String outputDirectory() const;
138
139 public:
140
141 //! Positionne le nom de l'application
142 void setApplicationName(const String& v);
143 //! Nom de l'application
144 String applicationName() const;
145
146 //! Positionne le numéro de version du code
147 void setCodeVersion(const VersionInfo& version_info);
148 //! Numéro de version
149 VersionInfo codeVersion() const;
150
151 //! Positionne le nom du code
152 void setCodeName(const String& code_name);
153 //! Retourne le nom du code.
154 String codeName() const;
155
156 //! Stratégie pour punaiser les threads des tâches
158
159 //! Positionne la strategie pour punaiser les threads des tâches
160 void threadBindingStrategy(const String& v);
161
162 //! Source du jeu de données
164 //! Source du jeu de données
166
167 public:
168
169 /*!
170 * \brief Nom du gestionnaire de message par défaut.
171 * Ne doit être modifié que par Arcane.
172 */
174 String internalDefaultMessagePassingService() const;
175
176 public:
177
178 /*!
179 * \brief Ajoute la bibliothèque \a lib_name à la liste des bibliothèques
180 * chargées dynamiquements.
181 *
182 * \a lib_name doit être un nom, sans chemin et sans extension. Par exemple,
183 * \c my_lib est valide mais pas \c libtoto.so, ni \c /tmp/toto.
184 */
185 void addDynamicLibrary(const String& lib_name);
186
187 public:
188
189 void addParameter(const String& name,const String& value);
190 /*!
191 * \brief Analyse les arguments de \a args.
192 *
193 * On ne récupère que les arguments du style *-A,x=b,y=c*.
194 * La méthode setDefaultValues() est appelée à la fin de cette
195 * méthode.
196 */
197 void parseArguments(const CommandLineArguments& args);
198
199 public:
200
201 ApplicationInfo& _internalApplicationInfo();
202 const ApplicationInfo& _internalApplicationInfo() const;
203
204 public:
205
206 void setDefaultValues();
207 void setDefaultServices();
208
209 private:
210
211 Impl* m_p = nullptr;
212};
213
214/*---------------------------------------------------------------------------*/
215/*---------------------------------------------------------------------------*/
216
217} // End namespace Arcane
218
219/*---------------------------------------------------------------------------*/
220/*---------------------------------------------------------------------------*/
221
222#endif
223
Déclarations des types utilisés dans Arcane.
void setVerbosityLevel(Int32 v)
Positionne le niveau de verbosité des messages des fichiers listings réduits.
void setOutputDirectory(const String &name)
Positionne le répertoire contenant les différentes sorties de la simulation.
VersionInfo codeVersion() const
Numéro de version.
void setOutputLevel(Int32 v)
Positionne le niveau de verbosité des messages sur la sortie standard.
String configFileName() const
Nom du fichier de configuration du code.
void addDynamicLibrary(const String &lib_name)
Ajoute la bibliothèque lib_name à la liste des bibliothèques chargées dynamiquements.
void internalSetDefaultMessagePassingService(const String &name)
Nom du gestionnaire de message par défaut. Ne doit être modifié que par Arcane.
void setCodeName(const String &code_name)
Positionne le nom du code.
String applicationName() const
Nom de l'application.
void parseArguments(const CommandLineArguments &args)
Analyse les arguments de args.
void setApplicationName(const String &v)
Positionne le nom de l'application.
String codeName() const
Retourne le nom du code.
CaseDatasetSource & caseDatasetSource()
Source du jeu de données.
void setConfigFileName(const String &name)
Positionne le fichier de configuration du code.
void setCodeVersion(const VersionInfo &version_info)
Positionne le numéro de version du code.
String threadBindingStrategy() const
Stratégie pour punaiser les threads des tâches.
Informations sur une application.
Source d'un jeu de données d'un cas.
Chaîne de caractères unicode.
Informations sur une version.
Definition VersionInfo.h:46
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
Int32 Integer
Type représentant un entier.
List< String > StringList
Tableau de chaînes de caractères unicode.
Definition UtilsTypes.h:509
std::int32_t Int32
Type entier signé sur 32 bits.