Arcane  4.1.12.0
Developer documentation
Loading...
Searching...
No Matches
ApplicationInfo.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2026 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/* Application information. */
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
32
33/*---------------------------------------------------------------------------*/
34/*---------------------------------------------------------------------------*/
35
39class ARCANE_UTILS_EXPORT ApplicationInfo
40{
41 public:
42
43 ApplicationInfo();
44 ApplicationInfo(int* argc, char*** argv, const String& name, const VersionInfo& version);
45 ApplicationInfo(const StringList& args, const String& name, const VersionInfo& version);
46 ApplicationInfo(const CommandLineArguments& args, const String& name, const VersionInfo& version);
47 ApplicationInfo(const ApplicationInfo& rhs);
48 ~ApplicationInfo();
49 ApplicationInfo& operator=(const ApplicationInfo& rhs);
50
51 public:
52
54 const String& applicationName() const;
56 ARCCORE_DEPRECATED_2020("use codeVersion() instead")
57 const VersionInfo& version() const { return codeVersion(); }
59 const VersionInfo& codeVersion() const;
61 const String& dataOsDir() const;
63 const String& dataDir() const;
64
66 ARCCORE_DEPRECATED_2020("use codeVersion().versionMajor() instead")
67 int versionMajor() const;
69 ARCCORE_DEPRECATED_2020("use codeVersion().versionMinor() instead")
70 int versionMinor() const;
72 ARCCORE_DEPRECATED_2020("use codeVersion().versionPatch() instead")
73 int versionPatch() const;
74
76 bool isDebug() const;
77
79 const String& codeName() const;
81 const String& targetFullName() const;
82
83 ARCCORE_DEPRECATED_2019("Use commandLineArguments().commandLineArgc() instead")
84 int* commandLineArgc() const;
85 ARCCORE_DEPRECATED_2019("Use commandLineArguments().commandLineArgv() instead")
86 char*** commandLineArgv() const;
87
89 void args(StringList& args) const;
90
92 const CommandLineArguments& commandLineArguments() const;
93
94 public:
95
102 void addDynamicLibrary(const String& lib_name);
103
105 StringCollection dynamicLibrariesName() const;
106
107 public:
108
110 void setDataOsDir(const String& v);
112 void setDataDir(const String& v);
114 ARCCORE_DEPRECATED_2020("use setCodeVersion() instead")
115 void setVersionInfo(const VersionInfo& version_info)
116 {
117 setCodeVersion(version_info);
118 }
119
120 void setApplicationName(const String& v);
122 void setCodeVersion(const VersionInfo& version_info);
124 void setCodeName(const String& code_name);
130 void setCommandLineArguments(const CommandLineArguments& args);
132 void setIsDebug(bool v);
133
134 public:
135
137 void setRuntimeConfigFileContent(ByteConstSpan content);
139 ByteConstSpan runtimeConfigFileContent() const;
140
141 public:
142
147 void addParameterLine(const String& line);
148
149 public:
150
151 ARCCORE_DEPRECATED_2019("Use commandLineArguments().commandLineArgc() instead")
152 int* m_argc;
153 ARCCORE_DEPRECATED_2019("Use commandLineArguments().commandLineArgv() instead")
154 char*** m_argv;
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
Declarations of types used in Arcane.
int * m_argc
Number of command line arguments.
void setCodeVersion(const VersionInfo &version_info)
Sets the version number.
const String & applicationName() const
Application name.
void args(StringList &args) const
Fills args with command line arguments.
const VersionInfo & codeVersion() const
Version number.
const VersionInfo & version() const
Version number.
char *** m_argv
Array of command line arguments.
void setVersionInfo(const VersionInfo &version_info)
Sets the code version number.
Information about a version.
Definition VersionInfo.h:47
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --
Collection< String > StringCollection
Collection of strings.
Definition UtilsTypes.h:506
List< String > StringList
Unicode string list.
Definition UtilsTypes.h:509