Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
IEntryPoint.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/* IEntryPoint.h (C) 2000-2022 */
9/* */
10/* Interface du point d'entrée d'un module. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_IENTRYPOINT_H
13#define ARCANE_IENTRYPOINT_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/ArcaneTypes.h"
18#include "arcane/Timer.h"
19
20/*---------------------------------------------------------------------------*/
21/*---------------------------------------------------------------------------*/
22
23namespace Arcane
24{
25class IModule;
26
27/*---------------------------------------------------------------------------*/
28/*---------------------------------------------------------------------------*/
29/*!
30 * \brief Interface d'un point d'entrée d'un module.
31 * \ingroup Module
32 */
33class ARCANE_CORE_EXPORT IEntryPoint
34{
35 public:
36
37 /*! @name Point d'appel
38 Endroit ou est utilisé le point d'entrée.
39 */
40 //@{
41 //! appelé pendant la boucle de calcul
42 static const char* const WComputeLoop;
43 //! appelé pour la construction du module
44 static const char* const WBuild;
45 //! appelé pendant l'initialisation
46 static const char* const WInit;
47 //! appelé pendant l'initialisation d'une reprise
48 static const char* const WContinueInit;
49 //! appelé pendant l'initialisation d'un nouveau cas
50 static const char* const WStartInit;
51 //! appelé pour restaurer les variables lors d'un retour arrière
52 static const char* const WRestore;
53 //! appelé après un changement de maillage
54 static const char* const WOnMeshChanged;
55 //! appelé après un raffinement de maillage
56 static const char* const WOnMeshRefinement;
57 //!< appelé lors de la terminaison du code.
58 static const char* const WExit;
59 //@}
60
61 /*!
62 * \brief Propriétés d'un point d'entrée.
63 */
64 enum
65 {
66 PNone = 0, //!< Pas de propriétés
67 /*!
68 * \brief Chargé automatiquement au début.
69 * Cela signifie qu'un module possédant un point d'entrée avec cette
70 * propriété sera toujours chargé, et que le point d'entrée sera ajouté
71 * à la liste des points d'entrées s'exécutant en début de boucle en temps.
72 */
73 PAutoLoadBegin = 1,
74 /*!
75 * \brief Chargé automatiquement à la fin.
76 * Cela signifie qu'un module possédant un point d'entrée avec cette
77 * propriété sera toujours chargé, et que le point d'entrée sera ajouté
78 * à la liste des points d'entrées s'exécutant en fin de boucle en temps.
79 */
80 PAutoLoadEnd = 2
81 };
82
83 public:
84
85 virtual ~IEntryPoint() = default; //!< Libère les ressources
86
87 public:
88
89 //! Retourne le nom du point d'entrée.
90 virtual String name() const = 0;
91
92 //! Nom complet (avec le module) du point d'entrée. Ce nom est unique.
93 virtual String fullName() const = 0;
94
95 public:
96
97 //! Retourne le gestionnaire principal
98 ARCANE_DEPRECATED_REASON("Y2022: Do not use this method. Try to get 'ISubDomain' from another way")
99 virtual ISubDomain* subDomain() const = 0;
100
101 //! Retourne le module associé au point d'entrée
102 virtual IModule* module() const = 0;
103
104 //! Appelle le point d'entrée
105 virtual void executeEntryPoint() = 0;
106
107 /*!
108 * \brief Consommation CPU totale passé dans ce point d'entrée en (en milli-s).
109 *
110 * \note depuis la version 3.6 de Arcane, cette méthode renvoie la même valeur
111 * que totalElapsedTime().
112 */
113 virtual Real totalCPUTime() const = 0;
114
115 /*!
116 * \brief Consommation CPU de la dernière itération (en milli-s).
117 *
118 * \note depuis la version 3.6 de Arcane, cette méthode renvoie la même valeur
119 * que lastElapsedTime().
120 */
121 virtual Real lastCPUTime() const = 0;
122
123 //! Temps d'exécution passé (temps horloge) dans ce point d'entrée en (en milli-s)
124 virtual Real totalElapsedTime() const = 0;
125
126 //! Temps d'exécution (temps horloge) de la dernière itération (en milli-s).
127 virtual Real lastElapsedTime() const = 0;
128
129 /*!
130 * \brief Retourne totalElapsedTime().
131 * \deprecated Utiliser totalElapsedTime() à la place
132 */
133 ARCANE_DEPRECATED_REASON("Y2022: Use totalElapsedTime() instead")
134 virtual Real totalTime(Timer::eTimerType) const = 0;
135
136 /*!
137 * \brief Retourne lastElapsedTime().
138 * \deprecated Utiliser lastElapsedTime() à la place
139 */
140 ARCANE_DEPRECATED_REASON("Y2022: Use lastElapsedTime() instead")
141 virtual Real lastTime(Timer::eTimerType) const = 0;
142
143 //! Retourne le nombre de fois que le point d'entrée a été exécuté
144 virtual Integer nbCall() const = 0;
145
146 //! Retourne l'endroit ou est appelé le point d'entrée.
147 virtual String where() const = 0;
148
149 //! Retourne les propriétés du point d'entrée.
150 virtual int property() const = 0;
151};
152
153/*---------------------------------------------------------------------------*/
154/*---------------------------------------------------------------------------*/
155
156} // End namespace Arcane
157
158/*---------------------------------------------------------------------------*/
159/*---------------------------------------------------------------------------*/
160
161#endif
162
Interface d'un point d'entrée d'un module.
Definition IEntryPoint.h:34
static const char *const WComputeLoop
appelé pendant la boucle de calcul
Definition IEntryPoint.h:42
static const char *const WBuild
appelé pour la construction du module
Definition IEntryPoint.h:44
static const char *const WStartInit
appelé pendant l'initialisation d'un nouveau cas
Definition IEntryPoint.h:50
static const char *const WRestore
appelé pour restaurer les variables lors d'un retour arrière
Definition IEntryPoint.h:52
static const char *const WOnMeshRefinement
appelé après un raffinement de maillage
Definition IEntryPoint.h:56
virtual String fullName() const =0
Nom complet (avec le module) du point d'entrée. Ce nom est unique.
static const char *const WOnMeshChanged
appelé après un changement de maillage
Definition IEntryPoint.h:54
static const char *const WContinueInit
appelé pendant l'initialisation d'une reprise
Definition IEntryPoint.h:48
static const char *const WInit
appelé pendant l'initialisation
Definition IEntryPoint.h:46
virtual String name() const =0
Retourne le nom du point d'entrée.
virtual ~IEntryPoint()=default
Libère les ressources.
Interface d'un module.
Definition IModule.h:39
Interface du gestionnaire d'un sous-domaine.
Definition ISubDomain.h:74
Gestion d'un timer.
Definition Timer.h:62
Chaîne de caractères unicode.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-