Arcane  v3.16.2.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
30{
31 VariableComparerArgs compare_args;
32 compare_args.setCompareMode(eVariableComparerCompareMode::Sync);
33 return compare_args;
34}
35
36/*---------------------------------------------------------------------------*/
37/*---------------------------------------------------------------------------*/
38
46
47/*---------------------------------------------------------------------------*/
48/*---------------------------------------------------------------------------*/
49
52{
53 ARCANE_CHECK_POINTER(data_reader);
54 VariableComparerArgs compare_args;
55 compare_args.setCompareMode(eVariableComparerCompareMode::Same);
56 compare_args.setDataReader(data_reader);
57 return compare_args;
58}
59
60/*---------------------------------------------------------------------------*/
61/*---------------------------------------------------------------------------*/
62
64apply(IVariable* var, const VariableComparerArgs& compare_args)
65{
67 return var->_internalApi()->compareVariable(compare_args);
68}
69
70/*---------------------------------------------------------------------------*/
71/*---------------------------------------------------------------------------*/
72
73} // namespace Arcane
74
75/*---------------------------------------------------------------------------*/
76/*---------------------------------------------------------------------------*/
#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
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 IVariableInternal * _internalApi()=0
API interne à Arcane.
Arguments des méthodes de VariableComparer.
Résultats d'une opération de comparaison.
VariableComparerArgs buildForCheckIfSameOnAllReplica()
Créé une comparaison pour vérifie qu'une variable est identique sur tous les réplicas.
VariableComparerResults apply(IVariable *var, const VariableComparerArgs &compare_args)
Applique la comparaison compare_args à la variable var.
VariableComparerArgs buildForCheckIfSame(IDataReader *data_reader)
Créé une comparaison pour vérifie qu'une variable est identique à une valeur de référence.
VariableComparerArgs buildForCheckIfSync()
Créé une comparaison pour vérifie qu'une variable est bien synchronisée.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
@ SameOnAllReplica
Vérifie que les valeurs de la variable sont les même sur tous les replica.
@ Same
Compare avec une référence.
@ Sync
Vérifie que la variable est bien synchronisée.