Arcane  4.1.12.0
Developer documentation
Loading...
Searching...
No Matches
VariableComparer.cc
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2026 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/* Class to perform comparisons between 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 returning the pointer ptr if it is not null or throwing an exception if it is null.
Interface for reading variable data.
Definition IDataReader.h:35
virtual VariableComparerResults compareVariable(const VariableComparerArgs &compare_args)=0
Applies the comparison method specified by compare_args.
Interface of a variable.
Definition IVariable.h:40
virtual IVariableInternal * _internalApi()=0
Internal Arcane API.
Arguments for VariableComparer methods.
Results of a comparison operation.
VariableComparerArgs buildForCheckIfSameOnAllReplica()
Creates a comparison to verify that a variable is identical on all replicas.
VariableComparerResults apply(IVariable *var, const VariableComparerArgs &compare_args)
Applies the comparison compare_args to the variable var.
VariableComparerArgs buildForCheckIfSame(IDataReader *data_reader)
Creates a comparison to verify that a variable is identical to a reference value.
VariableComparerArgs buildForCheckIfSync()
Creates a comparison to verify that a variable is synchronized.
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --
@ SameOnAllReplica
Checks that the variable values are the same on all replicas.
@ Same
Compares with a reference.
@ Sync
Checks that the variable is synchronized.