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