Arcane  v3.15.3.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
ApplicationInfo.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2024 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/* ApplicationInfo.h (C) 2000-2024 */
9/* */
10/* Informations sur une application. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_UTILS_APPLICATIONINFO_H
13#define ARCANE_UTILS_APPLICATIONINFO_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/utils/VersionInfo.h"
18#include "arcane/utils/String.h"
20
21/*---------------------------------------------------------------------------*/
22/*---------------------------------------------------------------------------*/
23
24namespace Arcane
25{
26
27/*---------------------------------------------------------------------------*/
28/*---------------------------------------------------------------------------*/
29
30class ApplicationInfoPrivate;
31class CommandLineArguments;
32
33/*---------------------------------------------------------------------------*/
34/*---------------------------------------------------------------------------*/
35/*!
36 * \brief Informations sur une application.
37 */
38class ARCANE_UTILS_EXPORT ApplicationInfo
39{
40 public:
41
43 ApplicationInfo(int* argc,char*** argv,const String& name,const VersionInfo& version);
44 ApplicationInfo(const StringList& args,const String& name,const VersionInfo& version);
45 ApplicationInfo(const CommandLineArguments& args,const String& name,const VersionInfo& version);
48 ApplicationInfo& operator=(const ApplicationInfo& rhs);
49
50 public:
51
52 //! Nom de l'application
53 const String& applicationName() const;
54 //! Numéro de version
55 ARCCORE_DEPRECATED_2020("use codeVersion() instead")
56 const VersionInfo& version() const { return codeVersion(); }
57 //! Numéro de version
58 const VersionInfo& codeVersion() const;
59 //! Retourne le chemin où se trouve les fichiers de données dépendant de l'OS
60 const String& dataOsDir() const;
61 //! Retourne le chemin où se trouve les fichiers de données.
62 const String& dataDir() const;
63
64 //! Retourne le numéro de version majeure de l'application
65 ARCCORE_DEPRECATED_2020("use codeVersion().versionMajor() instead")
66 int versionMajor() const;
67 //! Retourne le numéro de version mineure de l'application
68 ARCCORE_DEPRECATED_2020("use codeVersion().versionMinor() instead")
69 int versionMinor() const;
70 //! Retourne le numéro de version patch de l'application
71 ARCCORE_DEPRECATED_2020("use codeVersion().versionPatch() instead")
72 int versionPatch() const;
73
74 //! Retourne \a true si on s'exécute en mode debug.
75 bool isDebug() const;
76
77 //! Retourne le nom du code de calcul lié l'application
78 const String& codeName() const;
79 //! Retourne le nom complet de la cible
80 const String& targetFullName() const;
81
82 ARCCORE_DEPRECATED_2019("Use commandLineArguments().commandLineArgc() instead")
83 int* commandLineArgc() const;
84 ARCCORE_DEPRECATED_2019("Use commandLineArguments().commandLineArgv() instead")
85 char*** commandLineArgv() const;
86
87 //! Remplit \a args avec les arguments de la ligne de commande.
88 void args(StringList& args) const;
89
90 //! Arguments de la ligne de commande
91 const CommandLineArguments& commandLineArguments() const;
92
93 public:
94
95 /*!
96 * \brief Ajoute la bibliothèque \a lib_name à la liste des bibliothèques
97 * chargées dynamiquements.
98 *
99 * \a lib_name doit être un nom, sans chemin et sans extension. Par exemple,
100 * \c my_lib est valide mais pas \c libtoto.so, ni \c /tmp/toto.
101 */
102 void addDynamicLibrary(const String& lib_name);
103
104 //! Liste des bibliothèques dynamiques.
105 StringCollection dynamicLibrariesName() const;
106
107 public:
108
109 //! Positionne le chemin où se trouve les fichiers de données dépendant de l'OS
110 void setDataOsDir(const String& v);
111 //! Positionne le chemin où se trouve les fichiers de données.
112 void setDataDir(const String& v);
113 //! Positionne le numéro de version du code
114 ARCCORE_DEPRECATED_2020("use setCodeVersion() instead")
115 void setVersionInfo(const VersionInfo& version_info)
116 { setCodeVersion(version_info); }
117 //! Positionne le nom de l'application
118 void setApplicationName(const String& v);
119 //! Positionne le numéro de version
120 void setCodeVersion(const VersionInfo& version_info);
121 //! Positionne le nom du code
122 void setCodeName(const String& code_name);
123 /*!
124 * \brief Positionne les arguments de la ligne de commande.
125 *
126 * L'appel à cette méthode modifie les valeurs de \a m_argv et \a m_argc.
127 */
128 void setCommandLineArguments(const CommandLineArguments& args);
129 //! Positionne l'état de débug.
130 void setIsDebug(bool v);
131
132 public:
133
134 //! Positionne le contenu du fichier de configuration de l'application
135 void setRuntimeConfigFileContent(ByteConstSpan content);
136 //! Contenu du fichier de configuration de l'application
137 ByteConstSpan runtimeConfigFileContent() const;
138
139 public:
140
141 /*!
142 * \brief Ajoute un paramètre Arcane à la ligne de commande.
143 * \sa ParameterList::addParameterLine().
144 */
145 void addParameterLine(const String& line);
146
147 public:
148
149 ARCCORE_DEPRECATED_2019("Use commandLineArguments().commandLineArgc() instead")
150 int* m_argc; //!< Nombre d'arguments de la ligne de commande
151 ARCCORE_DEPRECATED_2019("Use commandLineArguments().commandLineArgv() instead")
152 char*** m_argv; //!< Tableau des arguments de la ligne de commande
153
154 private:
155
157
158 private:
159
160 void _init(const String& name);
161 void _setArgs();
162};
163
164/*---------------------------------------------------------------------------*/
165/*---------------------------------------------------------------------------*/
166
167} // End namespace Arcane
168
169/*---------------------------------------------------------------------------*/
170/*---------------------------------------------------------------------------*/
171
172#endif
173
Déclarations des types utilisés dans Arcane.
Informations sur une application.
Arguments de la ligne de commande.
Informations sur une version.
Definition VersionInfo.h:46
Référence à une instance.
Chaîne de caractères unicode.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
Span< const std::byte > ByteConstSpan
Vue en lecture seule d'un tableau à une dimension de caractères.
Definition UtilsTypes.h:638