Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
VariableSynchronizerEventArgs.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2023 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/* VariableSynchronizerEventArgs.h (C) 2000-2023 */
9/* */
10/* Arguments des évènements générés par IVariableSynchronizer. */
11/*---------------------------------------------------------------------------*/
12/*---------------------------------------------------------------------------*/
13#ifndef ARCANE_VARIABLESYNCHRONIZEREVENTARGS_H
14#define ARCANE_VARIABLESYNCHRONIZEREVENTARGS_H
15/*---------------------------------------------------------------------------*/
16/*---------------------------------------------------------------------------*/
17
19#include "arcane/utils/Array.h"
20
22
23/*---------------------------------------------------------------------------*/
24/*---------------------------------------------------------------------------*/
25
26namespace Arcane
27{
28
29/*---------------------------------------------------------------------------*/
30/*---------------------------------------------------------------------------*/
31/*!
32 * \brief Arguments de l'évènement notifiant une synchronisation de
33 * variables.
34 *
35 * Les instances de cette classe peuvent être utilisées plusieurs fois.
36 * Il faut appeler initialize() pour initialiser ou réinitialiser l'instance
37 * avec les valeurs par défaut.
38 */
39class ARCANE_CORE_EXPORT VariableSynchronizerEventArgs
40{
41 public:
42
43 //! Enum pour savoir si on est au début ou à la fin de la synchronisation
44 enum class State
45 {
46 BeginSynchronize,
47 EndSynchronize
48 };
49
50 //! Comparaison des valeurs des entités fantômes avant/après une synchronisation
51 enum class CompareStatus
52 {
53 //! Pas de comparaison ou résultat inconnue
54 Unknown,
55 //! Même valeurs avant et après la synchronisation
56 Same,
57 //! Valeurs différentes avant et après la synchronisation
58 Different
59 };
60
61 public:
62
63 ARCANE_DEPRECATED_REASON("Y2023: Use VariableSynchronizerEventArgs(IVariableSynchronizer* vs) and call initialize() instead")
65 Real elapsed_time, State state = State::EndSynchronize);
66 ARCANE_DEPRECATED_REASON("Y2023: Use VariableSynchronizerEventArgs(IVariableSynchronizer* vs) and call initialize() instead")
68 Real elapsed_time, State state = State::EndSynchronize);
69
70 ARCANE_DEPRECATED_REASON("Y2023: Use VariableSynchronizerEventArgs(IVariableSynchronizer* vs) and call initialize() instead")
72
73 ARCANE_DEPRECATED_REASON("Y2023: Use VariableSynchronizerEventArgs(IVariableSynchronizer* vs) and call initialize() instead")
75
77 : m_var_syncer(vs)
78 {}
79
80 public:
81
82 void initialize(const VariableCollection& vars);
83 void initialize(IVariable* var);
84
85 //! Synchroniseur associé.
86 IVariableSynchronizer* synchronizer() const { return m_var_syncer; }
87
88 //! Liste des variables synchronisées.
89 ConstArrayView<IVariable*> variables() const;
90
91 /*!
92 * \brief Liste de l'état de comparaison.
93 *
94 * La valeur du i-ème élément de compareStatus() indique l'état
95 * de comparaison pour la i-ème variable de variables().
96 *
97 * Cette liste n'est valide que pour les évènements de fin de synchronisation
98 * (state()==State::EndSynchronize).
99 */
100 ConstArrayView<CompareStatus> compareStatusList() const { return m_compare_status_list; }
101
102 //! Positionne l'état de comparaison de la i-ème variable.
103 void setCompareStatus(Int32 i, CompareStatus v) { m_compare_status_list[i] = v; }
104
105 //! Temps passé dans la synchronisation.
106 Real elapsedTime() const { return m_elapsed_time; }
107 void setElapsedTime(Real v) { m_elapsed_time = v; }
108
109 //! Indicateur du moment de l'évènement
110 State state() const { return m_state; }
111 void setState(State v) { m_state = v; }
112
113 private:
114
115 IVariableSynchronizer* m_var_syncer = nullptr;
116 UniqueArray<IVariable*> m_variables;
117 UniqueArray<CompareStatus> m_compare_status_list;
118 Real m_elapsed_time = 0.0;
119 State m_state = State::BeginSynchronize;
120
121 private:
122
123 void _reset();
124};
125
126/*---------------------------------------------------------------------------*/
127/*---------------------------------------------------------------------------*/
128
129} // namespace Arcane
130
131/*---------------------------------------------------------------------------*/
132/*---------------------------------------------------------------------------*/
133
134#endif
Déclarations des types généraux de Arcane.
Déclarations des types utilisés dans Arcane.
Interface d'un service de synchronisation de variable.
Collection de variables.
Arguments de l'évènement notifiant une synchronisation de variables.
Real elapsedTime() const
Temps passé dans la synchronisation.
CompareStatus
Comparaison des valeurs des entités fantômes avant/après une synchronisation.
State
Enum pour savoir si on est au début ou à la fin de la synchronisation.
ConstArrayView< CompareStatus > compareStatusList() const
Liste de l'état de comparaison.
void setCompareStatus(Int32 i, CompareStatus v)
Positionne l'état de comparaison de la i-ème variable.
IVariableSynchronizer * synchronizer() const
Synchroniseur associé.
State state() const
Indicateur du moment de l'évènement.
Vue constante d'un tableau de type T.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-