Arcane  v3.14.10.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
32class ServiceBuildInfo;
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.
Classe de base d'un service.
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.
Collection de variables.
Classe de base du service de vérification des données entre deux exécutions.
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.
Chaîne de caractères unicode.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-