Arcane  4.1.12.0
Developer documentation
Loading...
Searching...
No Matches
ArcaneMainExecInfo.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/* ArcaneMainExecInfo.h (C) 2000-2019 */
9/* */
10/* Class managing execution. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_IMPL_INTERNAL_ARCANEMAINEXECINFO_H
13#define ARCANE_IMPL_INTERNAL_ARCANEMAINEXECINFO_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/utils/List.h"
18#include "arcane/utils/IFunctor.h"
19#include "arcane/impl/ArcaneMain.h"
20#include "arcane/core/ApplicationBuildInfo.h"
21
22/*---------------------------------------------------------------------------*/
23/*---------------------------------------------------------------------------*/
24
25namespace Arcane
26{
27
28/*---------------------------------------------------------------------------*/
29/*---------------------------------------------------------------------------*/
30
38class ARCANE_IMPL_EXPORT ArcaneMainExecInfo
39{
40 public:
41
42 ArcaneMainExecInfo(const ApplicationInfo& app_info, IMainFactory* factory)
43 : m_app_info(app_info)
44 , m_main_factory(factory)
45 {}
46 ArcaneMainExecInfo(const ApplicationInfo& app_info, const ApplicationBuildInfo& build_info,
47 IMainFactory* factory)
48 : m_app_info(app_info)
49 , m_main_factory(factory)
50 , m_application_build_info(build_info)
51 , m_has_build_info(true)
52 {}
53
54 public:
55
56 int initialize();
57 void execute();
58 void finalize();
59 int returnValue() const { return m_ret_val; }
60 IArcaneMain* arcaneMainClass() const { return m_exec_main; }
61 void setDirectExecFunctor(IDirectSubDomainExecuteFunctor* func) { m_direct_exec_functor = func; }
62
63 private:
64
66 IMainFactory* m_main_factory;
67 ApplicationBuildInfo m_application_build_info;
68 bool m_has_build_info = false;
69 IArcaneMain* m_exec_main = nullptr;
70 int m_ret_val = 0;
71 bool m_clean_abort = false;
72 IDirectSubDomainExecuteFunctor* m_direct_exec_functor = nullptr;
73};
74
75/*---------------------------------------------------------------------------*/
76/*---------------------------------------------------------------------------*/
77
78} // End namespace Arcane
79
80/*---------------------------------------------------------------------------*/
81/*---------------------------------------------------------------------------*/
82
83#endif
Information for constructing an instance of IApplication.
Application information.
int initialize()
Creation of the 'IArcaneMain' instance.
const ApplicationInfo & m_app_info
WARNING: reference.
Interface of the code management class.
Definition IArcaneMain.h:55
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 --