Arcane  4.1.12.0
Developer documentation
Loading...
Searching...
No Matches
IArcaneMain.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/* IArcaneMain.h (C) 2000-2025 */
9/* */
10/* Interface of the ArcaneMain class. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CORE_IARCANEMAIN_H
13#define ARCANE_CORE_IARCANEMAIN_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
18
19/*---------------------------------------------------------------------------*/
20/*---------------------------------------------------------------------------*/
21
22namespace Arcane
23{
24
25/*---------------------------------------------------------------------------*/
26/*---------------------------------------------------------------------------*/
27
28class ApplicationInfo;
30class IMainFactory;
33
34/*---------------------------------------------------------------------------*/
35/*---------------------------------------------------------------------------*/
36
54class ARCANE_CORE_EXPORT IArcaneMain
55{
56 public:
57
59 virtual ~IArcaneMain() {}
60
61 public:
62
69 static IArcaneMain* arcaneMain();
73 static void setArcaneMain(IArcaneMain* arcane_main);
74
75 private:
76
77 static IArcaneMain* global_arcane_main;
78
79 public:
80
87 virtual void build() = 0;
88
95 virtual void initialize() = 0;
96
97 public:
98
106 virtual bool parseArgs(StringList args) = 0;
107
112 virtual int execute() = 0;
113
115 virtual void finalize() = 0;
116
118 virtual int errorCode() const = 0;
119
121 virtual void setErrorCode(int errcode) = 0;
122
124 virtual void doAbort() = 0;
125
126 public:
127
129 virtual const ApplicationInfo& applicationInfo() const = 0;
130
132 virtual const ApplicationBuildInfo& applicationBuildInfo() const = 0;
133
136
139
141 virtual IMainFactory* mainFactory() const = 0;
142
144 virtual IApplication* application() const = 0;
145
146 public:
147
151 virtual bool hasGarbageCollector() const = 0;
152
153 public:
154
157
160
161 public:
162
163 virtual void setDirectExecuteFunctor(IDirectSubDomainExecuteFunctor* f) = 0;
164};
165
166/*---------------------------------------------------------------------------*/
167/*---------------------------------------------------------------------------*/
168
169} // End namespace Arcane
170
171/*---------------------------------------------------------------------------*/
172/*---------------------------------------------------------------------------*/
173
174#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.
Interface of the code management class.
Definition IArcaneMain.h:55
virtual IApplication * application() const =0
Application.
virtual void finalize()=0
Performs the last operations before instance destruction.
virtual void initialize()=0
Initializes the instance. The instance is not usable until this method has been called.
virtual int execute()=0
Starts execution. This method only returns when the program exits.
virtual ~IArcaneMain()
Releases resources.
Definition IArcaneMain.h:59
virtual ServiceFactoryInfoCollection registeredServiceFactoryInfos()=0
List of registered service factories.
virtual ModuleFactoryInfoCollection registeredModuleFactoryInfos()=0
List of registered module factories.
virtual bool hasGarbageCollector() const =0
Indicates that certain objects are managed via a garbage collector.
virtual const DotNetRuntimeInitialisationInfo & dotnetRuntimeInitialisationInfo() const =0
.Net runtime initialization information.
virtual const AcceleratorRuntimeInitialisationInfo & acceleratorRuntimeInitialisationInfo() const =0
Runtime initialization information for accelerators.
virtual const ApplicationInfo & applicationInfo() const =0
Executable information.
virtual void setErrorCode(int errcode)=0
Sets the return code.
virtual IMainFactory * mainFactory() const =0
Main factory.
virtual void doAbort()=0
Performs an abort.
virtual bool parseArgs(StringList args)=0
Parses arguments.
virtual int errorCode() const =0
Execution error code.
virtual void build()=0
Constructs the class members. The instance is not usable until this method has been called....
virtual const ApplicationBuildInfo & applicationBuildInfo() const =0
Information to build the IApplication instance.
Interface of a functor to execute code directly after the creation of a subdomain without going throu...
Factory for Arcane classes.
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --
Collection< IServiceFactoryInfo * > ServiceFactoryInfoCollection
Collection of service factory information.
List< String > StringList
Unicode string list.
Definition UtilsTypes.h:509
Collection< IModuleFactoryInfo * > ModuleFactoryInfoCollection
Collection of module factory information.