Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
MemoryDataReaderWriter.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2022 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/* MemoryDataReaderWriter.h (C) 2000-2009 */
9/* */
10/* Lecture/ecriture des données en mémoire. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_IMPL_MEMORYDATAREADERWRITER_H
13#define ARCANE_IMPL_MEMORYDATAREADERWRITER_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/utils/TraceAccessor.h"
18#include "arcane/IDataReaderWriter.h"
19
20#include <map>
21
22/*---------------------------------------------------------------------------*/
23/*---------------------------------------------------------------------------*/
24
25ARCANE_BEGIN_NAMESPACE
26
27/*---------------------------------------------------------------------------*/
28/*---------------------------------------------------------------------------*/
29
30class IVariable;
31class IData;
32
33/*---------------------------------------------------------------------------*/
34/*---------------------------------------------------------------------------*/
42class ARCANE_IMPL_EXPORT MemoryDataReaderWriter
43: public TraceAccessor
44, public IDataReaderWriter
45{
46 private:
47
48 typedef std::map<String,Ref<IData>> VarToDataMap;
49
50 public:
51
54 {
55 }
57
58 public:
59
60 virtual void beginWrite(const VariableCollection& vars);
61 virtual void endWrite(){}
62 virtual void setMetaData(const String& meta_data) { m_meta_data = meta_data; }
63 virtual void write(IVariable* var,IData* data);
64
65 virtual void beginRead(const VariableCollection&){}
66 virtual void endRead(){}
67 virtual String metaData() { return m_meta_data; }
68 virtual void read(IVariable* var,IData* data);
69
70 void free();
71
72 private:
73
74 Ref<IData> _findData(IVariable* var);
75
76 private:
77
78 String m_meta_data;
79 VarToDataMap m_vars_to_data;
80};
81
82/*---------------------------------------------------------------------------*/
83/*---------------------------------------------------------------------------*/
84
85ARCANE_END_NAMESPACE
86
87/*---------------------------------------------------------------------------*/
88/*---------------------------------------------------------------------------*/
89
90#endif
Interface de lecture/ecriture des données d'une variable.
virtual void read(IVariable *var, IData *data)=0
Lit les données data de la variable var.
virtual void write(IVariable *var, IData *data)=0
Ecrit les données data de la variable var.
Interface d'une donnée.
Definition IData.h:33
Interface d'une variable.
Definition IVariable.h:54
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:120
Lecture/ecriture des données en mémoire.
virtual void setMetaData(const String &meta_data)
Positionne les infos des méta-données.
virtual String metaData()
Méta-données.
Collection de variables.
Interface du gestionnaire de traces.
Chaîne de caractères unicode.