Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
BasicWriter.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/* BasicWriter.h (C) 2000-2024 */
9/* */
10/* Ecrivain simple. */
11/*---------------------------------------------------------------------------*/
12/*---------------------------------------------------------------------------*/
13#ifndef ARCANE_STD_INTERNAL_BASICWRITER_H
14#define ARCANE_STD_INTERNAL_BASICWRITER_H
15/*---------------------------------------------------------------------------*/
16/*---------------------------------------------------------------------------*/
17
18#include "arcane/std/internal/BasicReaderWriter.h"
19#include "arcane/std/internal/ParallelDataWriter.h"
20
21#include <map>
22#include <set>
23
24/*---------------------------------------------------------------------------*/
25/*---------------------------------------------------------------------------*/
26
27namespace Arcane::impl
28{
29
30/*---------------------------------------------------------------------------*/
31/*---------------------------------------------------------------------------*/
37, public IDataWriter
38{
39 public:
40
42 eOpenMode open_mode, Integer version, bool want_parallel);
43
44 public:
45
47 void beginWrite(const VariableCollection& vars) override;
48 void endWrite() override;
49 void setMetaData(const String& meta_data) override;
50 void write(IVariable* v, IData* data) override;
52
53 public:
54
57 {
58 _checkNoInit();
59 m_data_compressor = data_compressor;
60 }
63 {
64 _checkNoInit();
65 m_compare_hash_algorithm = hash_algo;
66 }
68 void setSaveValues(bool v)
69 {
70 _checkNoInit();
72 }
73 void initialize();
74
75 private:
76
77 bool m_want_parallel = false;
78 bool m_is_gather = false;
79 bool m_is_init = false;
81 bool m_is_save_values = true;
82 Int32 m_version = -1;
83
84 Ref<IDataCompressor> m_data_compressor;
85 Ref<IHashAlgorithm> m_compare_hash_algorithm;
86 Ref<IHashAlgorithm> m_hash_algorithm;
87 Ref<KeyValueTextWriter> m_text_writer;
88
89 ParallelDataWriterList m_parallel_data_writers;
90 std::set<ItemGroup> m_written_groups;
91
92 ScopedPtrT<IGenericWriter> m_global_writer;
93
94 private:
95
96 void _directWriteVal(IVariable* v, IData* data);
99 void _endWriteV3();
100 void _checkNoInit();
101};
102
103/*---------------------------------------------------------------------------*/
104/*---------------------------------------------------------------------------*/
105
106} // namespace Arcane::impl
107
108/*---------------------------------------------------------------------------*/
109/*---------------------------------------------------------------------------*/
110
111#endif
Interface de l'application.
Interface d'écriture des données d'une variable.
Definition IDataWriter.h:49
Interface d'une donnée.
Definition IData.h:33
Interface du gestionnaire de parallélisme pour un sous-domaine.
Interface d'une variable.
Definition IVariable.h:54
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:120
liste de 'ParallelDataWriter'.
Collection de variables.
Lecture/Ecriture simple.
Definition BasicWriter.h:38
bool m_is_save_values
Indique si on sauve les valeurs.
Definition BasicWriter.h:81
String _computeCompareHash(IVariable *var, IData *write_data)
Calcul un hash de comparaison pour la variable.
void setSaveValues(bool v)
Indique si on sauve les valeurs des variables et des groupes. Si false, sauve uniquement les hash.
Definition BasicWriter.h:68
void setCompareHashAlgorithm(Ref< IHashAlgorithm > hash_algo)
Positionne le service de calcul de hash pour la comparaison. Doit être appelé avant initialize()
Definition BasicWriter.h:62
void beginWrite(const VariableCollection &vars) override
Implémentation de IDataWriter.
void setDataCompressor(Ref< IDataCompressor > data_compressor)
Positionne le service de compression. Doit être appelé avant initialize()
Definition BasicWriter.h:56
void write(IVariable *v, IData *data) override
Ecrit les données data de la variable var.
void setMetaData(const String &meta_data) override
Positionne les infos des méta-données.
Chaîne de caractères unicode.