Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
hdf5/Hdf5ReaderWriter.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2023 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/* Hdf5ReaderWriter.h (C) 2000-2023 */
9/* */
10/* Outils de lecture/écriture dans un fichier HDF5. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_HDF5_HDF5READERWRITER_H
13#define ARCANE_HDF5_HDF5READERWRITER_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/IDataReader.h"
18#include "arcane/IDataWriter.h"
19
20#include "arcane/hdf5/Hdf5Utils.h"
21#include "arcane/VariableTypes.h"
22
23/*---------------------------------------------------------------------------*/
24/*---------------------------------------------------------------------------*/
25
26namespace Arcane
27{
28
29/*---------------------------------------------------------------------------*/
30/*---------------------------------------------------------------------------*/
31
76: public TraceAccessor
77, public IDataReader
78, public IDataWriter
79{
80
81 public:
82
83 enum eOpenMode
84 {
85 OpenModeRead,
86 OpenModeTruncate,
87 OpenModeAppend
88 };
89 public:
90
92 Integer fileset_size,
93 Integer write_index, Integer index_modulo,
94 eOpenMode om,bool do_verif=false);
96
97 public:
98
99 virtual void initialize();
100
101 virtual void beginWrite(const VariableCollection& vars)
102 {
103 ARCANE_UNUSED(vars);
104 }
105 virtual void endWrite();
106 virtual void beginRead(const VariableCollection& vars)
107 {
108 ARCANE_UNUSED(vars);
109 }
110 virtual void endRead() {}
111
112 virtual void setMetaData(const String& meta_data);
113 virtual String metaData();
114
115 virtual void write(IVariable* v,IData* data);
116 virtual void read(IVariable* v,IData* data);
117
118 public:
119
120 herr_t iterateMe(hid_t group_id,const char* member_name);
121
122 private:
123
125 eOpenMode m_open_mode;
129
131
135
137 Timer m_io_timer;
138
139 private:
140
143 Int32 m_my_rank;
144 Int32 m_send_rank;
145 Int32 m_last_recv_rank;
146
147 Integer m_fileset_size;
148 Integer m_index_write;
149 Integer m_index_modulo;
150
151 private:
152
153 void _writeVal(const String& var_group_name,
154 const String& sub_group_name,
155 const ISerializedData* sdata,
156 const Int32 from_rank=0);
158 void _readVal(IVariable* var,IData* data);
159
160 Ref<ISerializedData> _readDim2(IVariable* v);
161
162 void _directReadVal(IVariable* v,IData* data);
163 void _directWriteVal(IVariable* v,IData* data);
164 void _checkValid();
165 String _variableGroupName(IVariable* var);
166
167 void _receiveRemoteVariables();
168 void _writeRemoteVariable(ISerializer* sb);
169 void _setMetaData(const String& meta_data,const String& sub_group_name);
170};
171
172/*---------------------------------------------------------------------------*/
173/*---------------------------------------------------------------------------*/
174
175} // End namespace Arcane
176
177/*---------------------------------------------------------------------------*/
178/*---------------------------------------------------------------------------*/
179
180#endif
Lecture/Ecriture au format HDF5.
Hdf5Utils::HFile m_file_id
Identifiant HDF du fichier.
virtual void read(IVariable *v, IData *data)
Lit les données data de la variable var.
void _writeValParallel(IVariable *v, const ISerializedData *sdata)
Ecriture en parallèle.
StringList m_variables_name
Liste des noms des variables sauvées.
bool m_is_parallel
Mode parallèle actif: ATTENTION: en cours de test uniquement.
virtual String metaData()
Méta-données.
String m_sub_group_name
Nom du fichier.
eOpenMode m_open_mode
Mode d'ouverture.
String m_filename
Nom du fichier.
IParallelMng * m_parallel_mng
Gestionnaire du parallélisme;.
Hdf5Utils::HGroup m_sub_group_id
Identifiant HDF du groupe contenant la protection.
bool m_is_initialized
Vrai si déjà initialisé
virtual void write(IVariable *v, IData *data)
Ecrit les données data de la variable var.
virtual void setMetaData(const String &meta_data)
Positionne les infos des méta-données.
Hdf5Utils::HGroup m_variable_group_id
Identifiant HDF du groupe contenant les variables.
Encapsule un hid_t pour un fichier.
Encapsule un hid_t pour un groupe.
Définition des types standards Arcane pour hdf5.
Interface de lecture des données d'une variable.
Definition IDataReader.h:41
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 donnée sérialisée.
Interface du gestionnaire d'un sous-domaine.
Definition ISubDomain.h:74
Interface d'une variable.
Definition IVariable.h:54
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:120
Gestion d'un timer.
Definition Timer.h:62
Collection de variables.
Chaîne de caractères unicode.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-