Arcane  v3.16.0.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
VariableComparer.cc
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2025 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/* VariableComparer.cc (C) 2000-2025 */
9/* */
10/* Classe pour effectuer des comparaisons entre les variables. */
11/*---------------------------------------------------------------------------*/
12/*---------------------------------------------------------------------------*/
13
14#include "arcane/core/VariableComparer.h"
15
16#include "arcane/core/IVariable.h"
17#include "arcane/core/internal/IVariableInternal.h"
18
19/*---------------------------------------------------------------------------*/
20/*---------------------------------------------------------------------------*/
21
22namespace Arcane
23{
24
25/*---------------------------------------------------------------------------*/
26/*---------------------------------------------------------------------------*/
27
28VariableComparer::
29VariableComparer(ITraceMng* tm)
30: TraceAccessor(tm)
31{
32}
33
34/*---------------------------------------------------------------------------*/
35/*---------------------------------------------------------------------------*/
36
37Int32 VariableComparer::
38checkIfSync(IVariable* var, Int32 max_print)
39{
41 return var->checkIfSync(max_print);
42}
43
44/*---------------------------------------------------------------------------*/
45/*---------------------------------------------------------------------------*/
46
47Int32 VariableComparer::
48checkIfSame(IVariable* var, IDataReader* reader, Int32 max_print, bool compare_ghost)
49{
51 return var->checkIfSame(reader, max_print, compare_ghost);
52}
53
54/*---------------------------------------------------------------------------*/
55/*---------------------------------------------------------------------------*/
56
57Int32 VariableComparer::
58checkIfSameOnAllReplica(IVariable* var, Integer max_print)
59{
61 return var->checkIfSameOnAllReplica(max_print);
62}
63
64/*---------------------------------------------------------------------------*/
65/*---------------------------------------------------------------------------*/
66
67VariableComparerArgs VariableComparer::
68buildForCheckIfSame(IDataReader* data_reader)
69{
70 ARCANE_CHECK_POINTER(data_reader);
71 VariableComparerArgs compare_args;
72 compare_args.setCompareMode(eVariableComparerCompareMode::Same);
73 compare_args.setDataReader(data_reader);
74 return compare_args;
75}
76
77/*---------------------------------------------------------------------------*/
78/*---------------------------------------------------------------------------*/
79
80VariableComparerResults VariableComparer::
81apply(IVariable* var, const VariableComparerArgs& compare_args)
82{
84 return var->_internalApi()->compareVariable(compare_args);
85}
86
87/*---------------------------------------------------------------------------*/
88/*---------------------------------------------------------------------------*/
89
90} // namespace Arcane
91
92/*---------------------------------------------------------------------------*/
93/*---------------------------------------------------------------------------*/
#define ARCANE_CHECK_POINTER(ptr)
Macro retournant le pointeur ptr s'il est non nul ou lancant une exception s'il est nul.
Interface de lecture des données d'une variable.
Definition IDataReader.h:41
Interface du gestionnaire de traces.
virtual VariableComparerResults compareVariable(const VariableComparerArgs &compare_args)=0
Applique la méthode de comparaison spécifiée par compare_args.
Interface d'une variable.
Definition IVariable.h:56
virtual Int32 checkIfSync(Integer max_print=0)=0
Vérifie si la variable est bien synchronisée.
virtual Int32 checkIfSame(IDataReader *reader, Integer max_print, bool compare_ghost)=0
Vérifie que la variable est identique à une valeur de référence.
virtual Int32 checkIfSameOnAllReplica(Integer max_print=0)=0
Vérifie si la variable a les mêmes valeurs sur tous les réplicas.
virtual IVariableInternal * _internalApi()=0
API interne à Arcane.
Arguments des méthodes de VariableComparer.
Résultats d'une opération de comparaison.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
Int32 Integer
Type représentant un entier.
@ Same
Compare avec une référence.
std::int32_t Int32
Type entier signé sur 32 bits.