Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
BasicReader.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/* BasicReader.h (C) 2000-2024 */
9/* */
10/* Lecteur simple. */
11/*---------------------------------------------------------------------------*/
12/*---------------------------------------------------------------------------*/
13#ifndef ARCANE_STD_INTERNAL_BASICREADER_H
14#define ARCANE_STD_INTERNAL_BASICREADER_H
15/*---------------------------------------------------------------------------*/
16/*---------------------------------------------------------------------------*/
17
18#include "arcane/std/internal/BasicReaderWriter.h"
19
20#include <map>
21
22/*---------------------------------------------------------------------------*/
23/*---------------------------------------------------------------------------*/
24
25namespace Arcane::impl
26{
27
28/*---------------------------------------------------------------------------*/
29/*---------------------------------------------------------------------------*/
35, public IDataReader
36, public IDataReader2
37{
38 public:
39
45 {
46 public:
47
48 virtual ~IItemGroupFinder() = default;
49 virtual ItemGroup getWantedGroup(VariableMetaData* vmd) = 0;
50 };
51
52 public:
53
55 const String& path, bool want_parallel);
56
57 public:
58
59 void beginRead(const VariableCollection& vars) override;
60 void endRead() override {}
61 String metaData() override;
62 void read(IVariable* v, IData* data) override;
63
64 void fillMetaData(ByteArray& bytes) override;
65 void beginRead(const DataReaderInfo& infos) override;
66 void read(const VariableDataReadInfo& infos) override;
67
68 public:
69
70 void initialize();
71 void setItemGroupFinder(IItemGroupFinder* group_finder)
72 {
73 m_item_group_finder = group_finder;
74 }
75 void fillComparisonHash(std::map<String, String>& comparison_hash_map);
76 IHashAlgorithm* comparisonHashAlgorithm() const { return m_comparison_hash_algorithm.get(); }
77
78 private:
79
80 bool m_want_parallel = false;
81 Integer m_nb_written_part = 0;
82 Int32 m_version = -1;
83
84 Int32 m_first_rank_to_read = -1;
85 Int32 m_nb_rank_to_read = -1;
86 Int32 m_forced_rank_to_read = -1;
87
88 std::map<String, Ref<ParallelDataReader>> m_parallel_data_readers;
89 UniqueArray<Ref<IGenericReader>> m_global_readers;
90 IItemGroupFinder* m_item_group_finder;
92 Ref<IDataCompressor> m_data_compressor;
93 Ref<IHashAlgorithm> m_comparison_hash_algorithm;
94
95 private:
96
97 void _directReadVal(VariableMetaData* varmd, IData* data);
98
100 void _setRanksToRead();
101 Ref<IGenericReader> _readOwnMetaDataAndCreateReader(Int32 rank);
102};
103
104/*---------------------------------------------------------------------------*/
105/*---------------------------------------------------------------------------*/
106
107} // namespace Arcane::impl
108
109/*---------------------------------------------------------------------------*/
110/*---------------------------------------------------------------------------*/
111
112#endif
Tableau d'items de types quelconques.
Informations de relecture des données.
Interface de l'application.
Interface de lecture des données d'une variable (Version 2)
Interface de lecture des données d'une variable.
Definition IDataReader.h:41
Interface d'une donnée.
Definition IData.h:33
Interface d'un algorithme de hashage.
Interface du gestionnaire de parallélisme pour un sous-domaine.
Interface d'une variable.
Definition IVariable.h:54
Groupe d'entités de maillage.
Definition ItemGroup.h:49
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:120
Collection de variables.
Informations de relecture des données d'une variable.
Meta-données sur une variable.
Interface pour retrouver le groupe associée à une variable à partir de ces meta-données.
Definition BasicReader.h:45
Ref< KeyValueTextReader > m_forced_rank_to_read_text_reader
Lecteur pour le premier rang à lire.
Definition BasicReader.h:91
String metaData() override
Méta-données.
void fillComparisonHash(std::map< String, String > &comparison_hash_map)
Remplit l'argument avec des couples (nom_de_variable,valeur du hash).
void read(IVariable *v, IData *data) override
Lit les données data de la variable var.
void fillMetaData(ByteArray &bytes) override
Remplit bytes avec le contenu des méta-données.
Chaîne de caractères unicode.