Skip to content

Commit 6798ca4

Browse files
authored
Merge pull request #1203 from arcaneframework/dev/ah-timehistorymng-split
Creation of TimeHistoryMngInternal for future evolutions
2 parents 2ca8560 + e08e573 commit 6798ca4

10 files changed

+1344
-661
lines changed
+52
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2+
//-----------------------------------------------------------------------------
3+
// Copyright 2000-2024 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+
/* ITimeHistoryAdder.h (C) 2000-2024 */
9+
/* */
10+
/* Interface de classe permettant d'ajouter un historique de valeur lié à */
11+
/* un maillage. */
12+
/*---------------------------------------------------------------------------*/
13+
/*---------------------------------------------------------------------------*/
14+
15+
#ifndef ARCANE_ITIMEHISTORYMNGADDER_H
16+
#define ARCANE_ITIMEHISTORYMNGADDER_H
17+
18+
/*---------------------------------------------------------------------------*/
19+
/*---------------------------------------------------------------------------*/
20+
21+
#include "arcane/utils/UtilsTypes.h"
22+
#include "arcane/utils/FatalErrorException.h"
23+
#include "arcane/core/ITimeHistoryMng.h"
24+
25+
/*---------------------------------------------------------------------------*/
26+
/*---------------------------------------------------------------------------*/
27+
28+
namespace Arcane
29+
{
30+
31+
/*---------------------------------------------------------------------------*/
32+
/*---------------------------------------------------------------------------*/
33+
34+
class ITimeHistoryAdder
35+
{
36+
public:
37+
virtual ~ITimeHistoryAdder() = default; //!< Libère les ressources
38+
39+
public:
40+
virtual void addValue(const TimeHistoryAddValueArg& thp, Real value) = 0;
41+
};
42+
43+
/*---------------------------------------------------------------------------*/
44+
/*---------------------------------------------------------------------------*/
45+
46+
}
47+
48+
/*---------------------------------------------------------------------------*/
49+
/*---------------------------------------------------------------------------*/
50+
51+
#endif
52+

arcane/src/arcane/core/ITimeHistoryMng.h

+73-24
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
22
//-----------------------------------------------------------------------------
3-
// Copyright 2000-2022 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
3+
// Copyright 2000-2024 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
44
// See the top-level COPYRIGHT file for details.
55
// SPDX-License-Identifier: Apache-2.0
66
//-----------------------------------------------------------------------------
77
/*---------------------------------------------------------------------------*/
8-
/* ITimeHistoryMng.h (C) 2000-2019 */
8+
/* ITimeHistoryMng.h (C) 2000-2024 */
99
/* */
1010
/* Interface de la classe gérant un historique de valeurs. */
1111
/*---------------------------------------------------------------------------*/
@@ -20,14 +20,48 @@
2020
/*---------------------------------------------------------------------------*/
2121
/*---------------------------------------------------------------------------*/
2222

23-
ARCANE_BEGIN_NAMESPACE
23+
namespace Arcane
24+
{
25+
26+
/*---------------------------------------------------------------------------*/
27+
/*---------------------------------------------------------------------------*/
28+
29+
/*!
30+
* Classe contenant les arguments pour les méthodes utilisateurs 'addValue'.
31+
*/
32+
class TimeHistoryAddValueArg
33+
{
34+
public:
35+
TimeHistoryAddValueArg(const String& name, bool end_time, bool is_local)
36+
: m_name(name)
37+
, m_end_time(end_time)
38+
, m_is_local(is_local)
39+
{}
40+
41+
explicit TimeHistoryAddValueArg(const String& name)
42+
: m_name(name)
43+
, m_end_time(true)
44+
, m_is_local(false)
45+
{}
46+
47+
public:
48+
const String& name() const { return m_name; }
49+
bool endTime() const { return m_end_time; }
50+
bool isLocal() const { return m_is_local; }
51+
52+
private:
53+
String m_name;
54+
bool m_end_time;
55+
bool m_is_local;
56+
};
2457

2558
/*---------------------------------------------------------------------------*/
2659
/*---------------------------------------------------------------------------*/
2760

2861
class ITimeHistoryCurveWriter;
2962
class ITimeHistoryCurveWriter2;
3063
class ITimeHistoryTransformer;
64+
class ITimeHistoryMngInternal;
3165

3266
/*---------------------------------------------------------------------------*/
3367
/*---------------------------------------------------------------------------*/
@@ -68,34 +102,35 @@ class ITimeHistoryMng
68102
{
69103
public:
70104

71-
virtual ~ITimeHistoryMng(){} //!< Libère les ressources
105+
virtual ~ITimeHistoryMng() {} //!< Libère les ressources
72106

73107
public:
74-
108+
109+
// TODO Deprecated
75110
/*! \brief Ajoute la valeur \a value à l'historique \a name.
76111
*
77112
* La valeur est celle au temps de fin de l'itération si \a end_time est vrai,
78113
* au début sinon.
79114
* le booleen is_local indique si la courbe est propre au process ou pas pour pouvoir écrire des courbes meme
80115
* par des procs non io_master quand la varariable ARCANE_ENABLE_NON_IO_MASTER_CURVES
81116
*/
82-
virtual void addValue(const String& name,Real value,bool end_time=true,bool is_local=false) =0;
117+
virtual void addValue(const String& name, Real value, bool end_time = true, bool is_local = false) = 0;
83118
/*! \brief Ajoute la valeur \a value à l'historique \a name.
84119
*
85120
* La valeur est celle au temps de fin de l'itération si \a end_time est vrai,
86121
* au début sinon.
87122
* le booleen is_local indique si la courbe est propre au process ou pas pour pouvoir écrire des courbes meme
88123
* par des procs non io_master quand la varariable ARCANE_ENABLE_NON_IO_MASTER_CURVES
89124
*/
90-
virtual void addValue(const String& name,Int32 value,bool end_time=true,bool is_local=false) =0;
125+
virtual void addValue(const String& name, Int32 value, bool end_time = true, bool is_local = false) = 0;
91126
/*! Ajoute la valeur \a value à l'historique \a name.
92127
*
93128
* La valeur est celle au temps de fin de l'itération si \a end_time est vrai,
94129
* au début sinon.
95130
* le booleen is_local indique si la courbe est propre au process ou pas pour pouvoir écrire des courbes meme
96131
* par des procs non io_master quand la varariable ARCANE_ENABLE_NON_IO_MASTER_CURVES
97132
*/
98-
virtual void addValue(const String& name,Int64 value,bool end_time=true,bool is_local=false) =0;
133+
virtual void addValue(const String& name, Int64 value, bool end_time = true, bool is_local = false) = 0;
99134
/*! \brief Ajoute la valeur \a value à l'historique \a name.
100135
*
101136
* Le nombre d'éléments de \a value doit être constant au cours du temps.
@@ -104,7 +139,7 @@ class ITimeHistoryMng
104139
* le booleen is_local indique si la courbe est propre au process ou pas pour pouvoir écrire des courbes meme
105140
* par des procs non io_master quand la varariable ARCANE_ENABLE_NON_IO_MASTER_CURVES
106141
*/
107-
virtual void addValue(const String& name,RealConstArrayView value,bool end_time=true,bool is_local=false) =0;
142+
virtual void addValue(const String& name, RealConstArrayView value, bool end_time = true, bool is_local = false) = 0;
108143
/*! \brief Ajoute la valeur \a value à l'historique \a name.
109144
*
110145
* Le nombre d'éléments de \a value doit être constant au cours du temps.
@@ -113,7 +148,7 @@ class ITimeHistoryMng
113148
* le booleen is_local indique si la courbe est propre au process ou pas pour pouvoir écrire des courbes meme
114149
* par des procs non io_master quand la varariable ARCANE_ENABLE_NON_IO_MASTER_CURVES
115150
*/
116-
virtual void addValue(const String& name,Int32ConstArrayView value,bool end_time=true,bool is_local=false) =0;
151+
virtual void addValue(const String& name, Int32ConstArrayView value, bool end_time = true, bool is_local = false) = 0;
117152
/*! Ajoute la valeur \a value à l'historique \a name.
118153
*
119154
* Le nombre d'éléments de \a value doit être constant au cours du temps.
@@ -122,7 +157,16 @@ class ITimeHistoryMng
122157
* le booleen is_local indique si la courbe est propre au process ou pas pour pouvoir écrire des courbes meme
123158
* par des procs non io_master quand la varariable ARCANE_ENABLE_NON_IO_MASTER_CURVES
124159
*/
125-
virtual void addValue(const String& name,Int64ConstArrayView value,bool end_time=true,bool is_local=false) =0;
160+
virtual void addValue(const String& name, Int64ConstArrayView value, bool end_time = true, bool is_local = false) = 0;
161+
162+
public:
163+
164+
virtual void addValue(const TimeHistoryAddValueArg& thp, Real value) = 0;
165+
virtual void addValue(const TimeHistoryAddValueArg& thp, Int32 value) = 0;
166+
virtual void addValue(const TimeHistoryAddValueArg& thp, Int64 value) = 0;
167+
virtual void addValue(const TimeHistoryAddValueArg& thp, RealConstArrayView values) = 0;
168+
virtual void addValue(const TimeHistoryAddValueArg& thp, Int32ConstArrayView values) = 0;
169+
virtual void addValue(const TimeHistoryAddValueArg& thp, Int64ConstArrayView values) = 0;
126170

127171
public:
128172

@@ -150,13 +194,13 @@ class ITimeHistoryMng
150194
}
151195

152196
//! Ajoute un écrivain
153-
virtual void addCurveWriter(ITimeHistoryCurveWriter2* writer) =0;
197+
virtual void addCurveWriter(ITimeHistoryCurveWriter2* writer) = 0;
154198

155199
//! Supprime un écrivain
156-
virtual void removeCurveWriter(ITimeHistoryCurveWriter2* writer) =0;
200+
virtual void removeCurveWriter(ITimeHistoryCurveWriter2* writer) = 0;
157201

158202
//! Supprime l'écrivain de nom \a name
159-
virtual void removeCurveWriter(const String& name) =0;
203+
virtual void removeCurveWriter(const String& name) = 0;
160204

161205
public:
162206

@@ -166,14 +210,14 @@ class ITimeHistoryMng
166210
*
167211
* Cela consiste à appelé dumpCurves() pour chaque écrivain enregistré.
168212
*/
169-
virtual void dumpHistory(bool is_verbose) =0;
213+
virtual void dumpHistory(bool is_verbose) = 0;
170214

171215
/*!
172216
* \brief Utilise l'écrivain \a writer pour sortir toutes les courbes.
173217
*
174218
* Le chemin de sortie est le répertoire courant.
175219
*/
176-
virtual void dumpCurves(ITimeHistoryCurveWriter2* writer) =0;
220+
virtual void dumpCurves(ITimeHistoryCurveWriter2* writer) = 0;
177221

178222
/*!
179223
* \brief Indique l'état d'activation.
@@ -182,47 +226,52 @@ class ITimeHistoryMng
182226
* est active. Dans le cas contraire, les appels à addValue() sont
183227
* ignorés.
184228
*/
185-
virtual bool active() const =0;
229+
virtual bool active() const = 0;
186230

187231
/*!
188232
* \brief Positionne l'état d'activation.
189233
* \sa active().
190234
*/
191-
virtual void setActive(bool is_active) =0;
235+
virtual void setActive(bool is_active) = 0;
192236

193237
/*!
194238
* \brief Applique la transformation \a v à l'ensemble des courbes.
195239
*/
196-
virtual void applyTransformation(ITimeHistoryTransformer* v) =0;
240+
virtual void applyTransformation(ITimeHistoryTransformer* v) = 0;
197241

198242
/*!
199243
* \brief Indique l'état d'activation des sorties.
200244
*
201245
* La fonction dumpHistory() est inactives
202246
* si isDumpActive() est faux.
203247
*/
204-
virtual bool isDumpActive() const =0;
248+
virtual bool isDumpActive() const = 0;
205249

206250
/*!
207251
* \brief Positionne l'état d'activation des sorties.
208252
*/
209-
virtual void setDumpActive(bool is_active) =0;
253+
virtual void setDumpActive(bool is_active) = 0;
210254

211255
/*!
212256
* \brief Retourne un booléen indiquant si l'historique est compressé
213257
*/
214-
virtual bool isShrinkActive() const =0;
258+
virtual bool isShrinkActive() const = 0;
215259

216260
/*!
217261
* \brief Positionne le booléen indiquant si l'historique est compressé
218262
*/
219-
virtual void setShrinkActive(bool is_active) =0;
263+
virtual void setShrinkActive(bool is_active) = 0;
264+
265+
public:
266+
267+
//! API interne à Arcane
268+
virtual ITimeHistoryMngInternal* _internalApi() = 0;
220269
};
221270

222271
/*---------------------------------------------------------------------------*/
223272
/*---------------------------------------------------------------------------*/
224273

225-
ARCANE_END_NAMESPACE
274+
}
226275

227276
/*---------------------------------------------------------------------------*/
228277
/*---------------------------------------------------------------------------*/
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2+
//-----------------------------------------------------------------------------
3+
// Copyright 2000-2024 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+
/* MeshTimeHistoryAdder.cc (C) 2000-2024 */
9+
/* */
10+
/* Classe permettant d'ajouter un historique de valeur lié à un maillage. */
11+
/*---------------------------------------------------------------------------*/
12+
/*---------------------------------------------------------------------------*/
13+
14+
#include "arcane/core/MeshTimeHistoryAdder.h"
15+
#include "arcane/core/internal/ITimeHistoryMngInternal.h"
16+
17+
/*---------------------------------------------------------------------------*/
18+
/*---------------------------------------------------------------------------*/
19+
20+
namespace Arcane
21+
{
22+
23+
/*---------------------------------------------------------------------------*/
24+
/*---------------------------------------------------------------------------*/
25+
26+
MeshTimeHistoryAdder::
27+
MeshTimeHistoryAdder(ITimeHistoryMng* thm, IMesh* mesh)
28+
: m_thm(thm)
29+
, m_mesh(mesh)
30+
{}
31+
32+
void MeshTimeHistoryAdder::
33+
addValue(const TimeHistoryAddValueArg& thp, Real value)
34+
{
35+
m_thm->_internalApi()->addValue(TimeHistoryAddValueArgInternal(thp, m_mesh->name()), value);
36+
}
37+
38+
/*---------------------------------------------------------------------------*/
39+
/*---------------------------------------------------------------------------*/
40+
41+
} // End namespace Arcane
42+
43+
/*---------------------------------------------------------------------------*/
44+
/*---------------------------------------------------------------------------*/
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2+
//-----------------------------------------------------------------------------
3+
// Copyright 2000-2024 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+
/* MeshTimeHistoryAdder.h (C) 2000-2024 */
9+
/* */
10+
/* Classe permettant d'ajouter un historique de valeur lié à un maillage. */
11+
/*---------------------------------------------------------------------------*/
12+
#ifndef ARCANE_CORE_MESHTIMEHISTORYADDER_H
13+
#define ARCANE_CORE_MESHTIMEHISTORYADDER_H
14+
/*---------------------------------------------------------------------------*/
15+
/*---------------------------------------------------------------------------*/
16+
17+
#include "arcane/core/ITimeHistoryAdder.h"
18+
#include "arcane/core/IMesh.h"
19+
20+
/*---------------------------------------------------------------------------*/
21+
/*---------------------------------------------------------------------------*/
22+
23+
namespace Arcane
24+
{
25+
26+
/*---------------------------------------------------------------------------*/
27+
/*---------------------------------------------------------------------------*/
28+
29+
class ARCANE_CORE_EXPORT MeshTimeHistoryAdder
30+
: public ITimeHistoryAdder
31+
{
32+
public:
33+
MeshTimeHistoryAdder(ITimeHistoryMng* thm, IMesh* mesh);
34+
~MeshTimeHistoryAdder() override = default;
35+
36+
public:
37+
void addValue(const TimeHistoryAddValueArg& thp, Real value) override;
38+
39+
private:
40+
ITimeHistoryMng* m_thm;
41+
IMesh* m_mesh;
42+
};
43+
44+
/*---------------------------------------------------------------------------*/
45+
/*---------------------------------------------------------------------------*/
46+
47+
} // End namespace Arcane
48+
49+
/*---------------------------------------------------------------------------*/
50+
/*---------------------------------------------------------------------------*/
51+
52+
#endif

0 commit comments

Comments
 (0)