Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
Hdf5VariableInfoBase.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/* Hdf5VariableInfoBase.h (C) 2000-2023 */
9/* */
10/* Liaison d'une variable avec un fichier HDF5. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_HDF5_HDF5VARIABLEINFOBASE_H
13#define ARCANE_HDF5_HDF5VARIABLEINFOBASE_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/hdf5/Hdf5Utils.h"
18#include "arcane/VariableTypes.h"
19
20/*---------------------------------------------------------------------------*/
21/*---------------------------------------------------------------------------*/
22
23ARCANE_BEGIN_NAMESPACE
24
25/*---------------------------------------------------------------------------*/
26/*---------------------------------------------------------------------------*/
27
28class IMesh;
29class IVariable;
30
31/*---------------------------------------------------------------------------*/
32/*---------------------------------------------------------------------------*/
33/*!
34 * \internal
35 * \brief Classe de base pour lire ou écrire une variables.
36 */
37class ARCANE_HDF5_EXPORT Hdf5VariableInfoBase
38{
39 public:
40 /*!
41 * \brief Fonctor pour faire la correspondance entre une
42 * entité du maillage courant et celle du maillage sauvegardé.
43 */
45 {
46 public:
47 virtual ~ICorrespondanceFunctor() {}
48 public:
49 virtual Int64 getOldUniqueId(Int64 uid,Integer index) =0;
50 };
51 public:
52 static const Integer SAVE_IDS = 1;
53 static const Integer SAVE_COORDS = 2;
54 protected:
55 Hdf5VariableInfoBase() : m_correspondance_functor(0) {}
56 public:
57 virtual ~Hdf5VariableInfoBase() {}
58 public:
59 static Hdf5VariableInfoBase* create(IMesh* mesh,const String& name,
60 const String& family);
61 //! Créé une instance pour la variable \a variable.
62 static Hdf5VariableInfoBase* create(IVariable* variable);
63
64 public:
65 //! Chemin dans le fichier Hdf5 contenant la valeur de la variable
66 const String& path() const { return m_path; }
67 //! Positionne le chemin dans le fichier Hdf5 contenant la valeur de la variable
68 void setPath(const String& path) { m_path = path; }
69 virtual void readVariable(Hdf5Utils::HFile& hfile,const String& filename,
70 Hdf5Utils::StandardTypes& st,const String& ids_hpath,IData* data) =0;
71 virtual void writeVariable(Hdf5Utils::HFile& hfile,Hdf5Utils::StandardTypes& st) =0;
72 virtual IVariable* variable() const =0;
73 public:
74 void writeGroup(Hdf5Utils::HFile& hfile,Hdf5Utils::StandardTypes& st,
75 const String& hdf_path,Integer save_type);
76 void readGroupInfo(Hdf5Utils::HFile& hfile,Hdf5Utils::StandardTypes& st,
77 const String& hdf_path,Int64Array& uids,Real3Array& centers);
78 void setCorrespondanceFunctor(ICorrespondanceFunctor* functor)
79 {
80 m_correspondance_functor = functor;
81 }
82 private:
83 String m_path;
84 protected:
85 ICorrespondanceFunctor* m_correspondance_functor;
86 private:
87 static void _checkValidVariable(IVariable* var);
88};
89
90/*---------------------------------------------------------------------------*/
91/*---------------------------------------------------------------------------*/
92
93ARCANE_END_NAMESPACE
94
95/*---------------------------------------------------------------------------*/
96/*---------------------------------------------------------------------------*/
97
98#endif
Encapsule un hid_t pour un fichier.
Definition Hdf5Utils.h:210
Définition des types standards Arcane pour hdf5.
Definition Hdf5Utils.h:562
Fonctor pour faire la correspondance entre une entité du maillage courant et celle du maillage sauveg...
const String & path() const
Chemin dans le fichier Hdf5 contenant la valeur de la variable.
void setPath(const String &path)
Positionne le chemin dans le fichier Hdf5 contenant la valeur de la variable.
Interface d'une donnée.
Definition IData.h:33
Classe de base des vecteurs 1D de données.
Chaîne de caractères unicode.