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