Arcane  4.1.12.0
User documentation
Loading...
Searching...
No Matches
IApplication.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/* IApplication.h (C) 2000-2025 */
9/* */
10/* Application interface. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CORE_IAPPLICATION_H
13#define ARCANE_CORE_IAPPLICATION_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
18#include "arcane/core/IBase.h"
19
20/*---------------------------------------------------------------------------*/
21/*---------------------------------------------------------------------------*/
22
23namespace Arcane
24{
25
26/*---------------------------------------------------------------------------*/
27/*---------------------------------------------------------------------------*/
28
29class ApplicationInfo;
30class IMainFactory;
31class IArcaneMain;
32class IRessourceMng;
33class IIOMng;
34class XmlNode;
35class ICodeService;
36class IParallelMng;
38class ISession;
39class IDataFactory;
41class ITraceMngPolicy;
45
46/*---------------------------------------------------------------------------*/
47/*---------------------------------------------------------------------------*/
48
49/*!
50 * \brief Application interface.
51 *
52 This class contains information about the executable configuration.
53
54 There is only one instance of this class per process (singleton).
55 */
56class ARCANE_CORE_EXPORT IApplication
57: public IBase
58{
59 public:
60
61 //! Supervisory parallelism manager
63
64 //! Sequential parallelism supervisor manager
66
67 //! Input/output manager.
68 virtual IIOMng* ioMng() = 0;
69
70 //! Execution configuration manager
71 virtual IConfigurationMng* configurationMng() const = 0;
72
73 //! Data factory
74 ARCCORE_DEPRECATED_2021("Use dataFactoryMng() instead")
75 virtual IDataFactory* dataFactory() = 0;
76
77 //! Data factory
78 virtual IDataFactoryMng* dataFactoryMng() const = 0;
79
80 //! Executable information
81 virtual const ApplicationInfo& applicationInfo() const = 0;
82
83 //! Instance build parameter information
84 virtual const ApplicationBuildInfo& applicationBuildInfo() const = 0;
85
86 //! '.Net' runtime initialization information.
88
89 //! Runtime initialization information for accelerators
91
92 //! Application version number
93 virtual String versionStr() const = 0;
94
95 //! Main application version number (without beta)
96 virtual String mainVersionStr() const = 0;
97
98 //! Major and minor version number in M.m format
99 virtual String majorAndMinorVersionStr() const = 0;
100
101 //! Application compilation options information
102 virtual String targetinfoStr() const = 0;
103
104 //! Code name
105 virtual String codeName() const = 0;
106
107 //! Application name
108 virtual String applicationName() const = 0;
109
110 //! User name
111 virtual String userName() const = 0;
112
113 /*
114 * \brief Content of the code configuration Xml file.
115 */
116 virtual ByteConstSpan configBuffer() const = 0;
117
118 /*
119 * \brief Content of the user configuration Xml file
120 */
121 virtual ByteConstSpan userConfigBuffer() const = 0;
122
123 //! User configuration directory path
124 virtual String userConfigPath() const = 0;
125
126 //! Adds the session \a session
127 virtual void addSession(ISession* session) = 0;
128
129 //! Removes the session \a session
130 virtual void removeSession(ISession* session) = 0;
131
132 //! List of sessions
134
135 //! Main factory.
136 virtual IMainFactory* mainFactory() const = 0;
137
138 //! List of module factory information
140
141 //! List of service factories.
143
144 /*!
145 * \brief Returns the case loader corresponding to the file
146 * given by \a file_name.
147 */
148 virtual Ref<ICodeService> getCodeService(const String& file_name) = 0;
149
150 //! Indicates that certain objects are managed via a garbage collector.
151 virtual bool hasGarbageCollector() const = 0;
152
153 //! Service managing physical unit systems
155
156 //! Trace manager configuration policy.
158
159 /*!
160 * \brief Creates and initializes an instance of ITraceMng.
161 *
162 * The created instance is initialized according to the policy specified
163 * by getTraceMngPolicy().
164 * If file outputs are enabled, the created instance will output
165 * its information into a file suffixed by \a file_suffix.
166 *
167 * The verbosity properties of the created instance are inherited from
168 * \a parent_trace if it is not null.
169 */
171 const String& file_suffix) = 0;
172};
173
174/*---------------------------------------------------------------------------*/
175/*---------------------------------------------------------------------------*/
176
177} // End namespace Arcane
178
179/*---------------------------------------------------------------------------*/
180/*---------------------------------------------------------------------------*/
181
182#endif
Declarations of Arcane's general types.
Information for constructing an instance of IApplication.
Application information.
Information for the initialization of the '.Net' runtime.
Application interface.
virtual void addSession(ISession *session)=0
Adds the session session.
virtual SessionCollection sessions()=0
List of sessions.
virtual ITraceMngPolicy * getTraceMngPolicy()=0
Trace manager configuration policy.
virtual IMainFactory * mainFactory() const =0
Main factory.
virtual IPhysicalUnitSystemService * getPhysicalUnitSystemService()=0
Service managing physical unit systems.
virtual IIOMng * ioMng()=0
Input/output manager.
virtual ModuleFactoryInfoCollection moduleFactoryInfos()=0
List of module factory information.
virtual String mainVersionStr() const =0
Main application version number (without beta).
virtual String applicationName() const =0
Application name.
virtual IDataFactory * dataFactory()=0
Data factory.
virtual const ApplicationBuildInfo & applicationBuildInfo() const =0
Instance build parameter information.
virtual IConfigurationMng * configurationMng() const =0
Execution configuration manager.
virtual void removeSession(ISession *session)=0
Removes the session session.
virtual Ref< ICodeService > getCodeService(const String &file_name)=0
Returns the case loader corresponding to the file given by file_name.
virtual bool hasGarbageCollector() const =0
Indicates that certain objects are managed via a garbage collector.
virtual String majorAndMinorVersionStr() const =0
Major and minor version number in M.m format.
virtual ServiceFactory2Collection serviceFactories2()=0
List of service factories.
virtual const AcceleratorRuntimeInitialisationInfo & acceleratorRuntimeInitialisationInfo() const =0
Runtime initialization information for accelerators.
virtual IDataFactoryMng * dataFactoryMng() const =0
Data factory.
virtual IParallelSuperMng * parallelSuperMng()=0
Supervisory parallelism manager.
virtual String userName() const =0
User name.
virtual ITraceMng * createAndInitializeTraceMng(ITraceMng *parent_trace, const String &file_suffix)=0
Creates and initializes an instance of ITraceMng.
virtual const ApplicationInfo & applicationInfo() const =0
Executable information.
virtual String versionStr() const =0
Application version number.
virtual IParallelSuperMng * sequentialParallelSuperMng()=0
Sequential parallelism supervisor manager.
virtual String targetinfoStr() const =0
Application compilation options information.
virtual String codeName() const =0
Code name.
virtual const DotNetRuntimeInitialisationInfo & dotnetRuntimeInitialisationInfo() const =0
'.Net' runtime initialization information.
virtual String userConfigPath() const =0
User configuration directory path.
Interface of the base class for main arcane objects.
Definition IBase.h:32
Interface of a case loader.
Configuration manager.
Interface of the input/output manager.
Definition IIOMng.h:37
Interface of the parallelism manager for a subdomain.
Interface of a resource manager.
Interface for a case execution session.
Definition ISession.h:38
Interface for the configuration manager of a trace manager.
Reference to an instance.
Node of a DOM tree.
Definition XmlNode.h:51
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --
Collection< Internal::IServiceFactory2 * > ServiceFactory2Collection
Collection of service factories.
Collection< IModuleFactoryInfo * > ModuleFactoryInfoCollection
Collection of module factory information.
Span< const std::byte > ByteConstSpan
Read-only view of a 1D array of characters.
Definition UtilsTypes.h:548
Collection< ISession * > SessionCollection
Collection of sessions.