Arcane  v3.16.0.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
VerifierService.h
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/* VerifierService.h (C) 2000-2024 */
9/* */
10/* Classe de base du service de vérification des variables. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CORE_VERIFIERSERVICE_H
13#define ARCANE_CORE_VERIFIERSERVICE_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/utils/String.h"
18
20#include "arcane/core/AbstractService.h"
21#include "arcane/core/IVerifierService.h"
22
23/*---------------------------------------------------------------------------*/
24/*---------------------------------------------------------------------------*/
25
26namespace Arcane
27{
28
29/*---------------------------------------------------------------------------*/
30/*---------------------------------------------------------------------------*/
31
33class IDataReader;
34
35/*---------------------------------------------------------------------------*/
36/*---------------------------------------------------------------------------*/
37/*!
38 * \ingroup StandardService
39 * \brief Classe de base du service de vérification des données
40 * entre deux exécutions.
41 */
42class ARCANE_CORE_EXPORT VerifierService
43: public AbstractService
44, public IVerifierService
45{
46 private:
47
48 struct DiffInfo
49 {
50 public:
51
52 DiffInfo()
53 : m_variable_name()
54 , m_nb_diff(0)
55 {}
56 DiffInfo(const String& var_name, Int64 nb_diff)
57 : m_variable_name(var_name)
58 , m_nb_diff(nb_diff)
59 {}
60
61 public:
62
63 String m_variable_name;
64 Int64 m_nb_diff;
65 };
66
67 public:
68
69 explicit VerifierService(const ServiceBuildInfo& sbi);
70 ~VerifierService() override;
71
72 public:
73
74 IBase* serviceParent() const override;
75 IServiceInfo* serviceInfo() const override { return m_service_info; }
76 IService* serviceInterface() override { return this; }
77
78 public:
79
80 void setFileName(const String& file_name) override { m_file_name = file_name; }
81 String fileName() const override { return m_file_name; }
82
83 public:
84
85 void setResultFileName(const String& file_name) override { m_result_file_name = file_name; }
86 String resultfileName() const override { return m_result_file_name; }
87
88 //! Type de comparaison souhaité
89 void setCompareMode(eCompareMode v) override { m_compare_mode = v; }
90 eCompareMode compareMode() const override { return m_compare_mode; }
91
92 void setSubDir(const String& sub_dir) override { m_sub_dir = sub_dir; }
93 String subDir() const override { return m_sub_dir; }
94
95 protected:
96
97 virtual void _doVerif(IDataReader* reader, const VariableCollection& variables, bool compare_ghost);
98 //! Remplit dans \a variables la liste des variables devant être relues
99 virtual void _getVariables(VariableList variables, bool parallel_sequential);
100
101 public:
102
103 ISubDomain* subDomain() { return m_sub_domain; }
104
105 protected:
106 private:
107
108 ISubDomain* m_sub_domain = nullptr;
109 IServiceInfo* m_service_info = nullptr;
110 String m_file_name;
111 String m_result_file_name;
112 String m_sub_dir;
113 eCompareMode m_compare_mode = eCompareMode::Values;
114
115 private:
116
117 template <typename ReaderType> void
118 _doVerif2(ReaderType reader, const VariableList& variables, bool compare_ghost);
119};
120
121/*---------------------------------------------------------------------------*/
122/*---------------------------------------------------------------------------*/
123
124} // End namespace Arcane
125
126/*---------------------------------------------------------------------------*/
127/*---------------------------------------------------------------------------*/
128
129#endif
Déclarations des types généraux de Arcane.
AbstractService(const ServiceBuildInfo &)
Constructeur à partir d'un ServiceBuildInfo.
Interface de la classe de base des objets principaux arcane.
Definition IBase.h:38
Interface de lecture des données d'une variable.
Definition IDataReader.h:41
Interface des informations d'un service ou d'un module.
Interface d'un service.
Definition IService.h:45
Interface du gestionnaire d'un sous-domaine.
Definition ISubDomain.h:74
Interface du service de vérification des données entre deux exécutions.
eCompareMode
Mode de comparaison.
Structure contenant les informations pour créer un service.
Chaîne de caractères unicode.
Collection de variables.
IBase * serviceParent() const override
Accès à l'interface de base des principaux objets Arcane.
String fileName() const override
Nom du fichier contenant les valeurs de référence.
IService * serviceInterface() override
Retourne l'interface bas niveau IService du service.
void setFileName(const String &file_name) override
Positionne le nom du fichier contenant les valeurs de référence.
void setCompareMode(eCompareMode v) override
Type de comparaison souhaité
void setSubDir(const String &sub_dir) override
Positionne le nom du sous répertoire contenant les valeurs de référence.
IServiceInfo * serviceInfo() const override
Accès aux informations du service.
void setResultFileName(const String &file_name) override
Nom du fichier contenant les résultats.
String subDir() const override
Nom du fichier contenant les valeurs de référence.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
std::int64_t Int64
Type entier signé sur 64 bits.