12#ifndef ARCANE_IMPL_INTERNAL_ARRAY2DATA_H
13#define ARCANE_IMPL_INTERNAL_ARRAY2DATA_H
19#include "arcane/utils/ArrayShape.h"
20#include "arcane/utils/String.h"
21#include "arcane/utils/IDataCompressor.h"
22#include "arcane/utils/Array2.h"
23#include "arcane/utils/MemoryView.h"
24#include "arcane/utils/Ref.h"
25#include "arcane/utils/FatalErrorException.h"
27#include "arcane/core/IData.h"
28#include "arcane/core/IDataVisitor.h"
29#include "arcane/core/internal/IDataInternal.h"
30#include "arcane/core/datatype/DataAllocationInfo.h"
31#include "arcane/core/datatype/DataTypeTraits.h"
32#include "arcane/core/datatype/DataStorageTypeInfo.h"
45template <
class DataType>
50 ARCCORE_DEFINE_REFERENCE_COUNTED_INCLASS_METHODS();
69 Integer
multiTag()
const override {
return 0; }
87 auto* d = _cloneTrue();
92 auto* d = _cloneTrueEmpty();
115 visitor->applyDataVisitor(
this);
132 void swapValuesDirect(ThatClass*
true_data);
161template <
typename DataType>
192 m_p->m_shape.setNbDimension(1);
197 void shrink()
const override { m_p->m_value.shrink(); }
206 buf.m_original_dim1_size = m_p->m_value.dim1Size();
207 buf.m_original_dim2_size = m_p->m_value.dim2Size();
208 m_p->m_value.clear();
209 m_p->m_value.shrink();
217 m_p->m_value.resize(buf.m_original_dim1_size, buf.m_original_dim2_size);
219 compressor->decompress(buf.m_buffer, asWritableBytes(values));
226 Int32 dim1_size =
value.dim1Size();
227 Int32 dim2_size =
value.dim2Size();
235 return m_p->view().dim1Size();
#define ARCANE_THROW(exception_class,...)
Macro pour envoyer une exception avec formattage.
#define ARCANE_FATAL(...)
Macro envoyant une exception FatalErrorException.
Int32 extent0() const override
Nombre d'éléments de la première dimension.
void resizeOnlyDim1(Int32 new_dim1_size) override
Redimensionne le conteneur.
Array2< DataType > & _internalDeprecatedValue() override
Conteneur associé à la donnée.
MutableMemoryView memoryView() override
Vue mémoire sur la donnée.
bool decompressAndFill(DataCompressionBuffer &buf) override
Décompresse les données et remplit les valeurs de la donnée.
void resize(Int32 new_dim1_size, Int32 new_dim2_size) override
Redimensionne le conteneur.
void changeAllocator(const MemoryAllocationOptions &v) override
Change l'allocateur de la variable.
bool compressAndClear(DataCompressionBuffer &buf) override
Compresse les données et libère la mémoire associée.
void computeHash(DataHashInfo &hash_info) override
Calcule le hash de la donnée.
void reserve(Integer new_capacity) override
Réserve de la mémoire pour new_capacity éléments.
INumericDataInternal * numericData() override
Interface générique pour les données numériques (nullptr si la donnée n'est pas numérique)
void shrink() const override
Libère la mémoire additionnelle éventuellement allouée.
Donnée tableau bi-dimensionnel d'un type DataType.
ConstArray2View< DataType > view() const override
Vue constante sur la donnée.
void fillDefault() override
Remplit la donnée avec sa valeur par défaut.
void assignSerializedData(const ISerializedData *sdata) override
Assigne à la donnée les valeurs sérialisées sdata.
void resize(Integer new_size) override
Redimensionne la donnée.
IData * clone() override
Clone la donnée. L'instance créée doit être détruite par l'opérateur 'delete'.
const Array2< DataType > & value() const override
Valeur de la donnée.
void visitArray2(IArray2DataVisitor *visitor) override
Applique le visiteur à la donnée.
UniqueArray2< DataType > m_value
Donnée.
DataAllocationInfo allocationInfo() const override
Informations sur l'allocation.
IData * cloneEmpty() override
Clone la donnée mais sans éléments. L'instance créée doit être détruite par l'opérateur 'delete'.
Ref< DataInterfaceType > cloneTrueRef() override
Clone la donnée.
IDataInternal * _commonInternal() override
void computeHash(IHashAlgorithm *algo, ByteArray &output) const override
Calcul une clé de hashage sur cette donnée.
Ref< IData > cloneRef() override
Clone la donnée.
void serialize(ISerializer *sbuf, IDataOperation *operation) override
Sérialise la donnée en appliquant l'opération operation.
Ref< IData > cloneEmptyRef() override
Clone la donnée mais sans éléments.
Ref< ISerializedData > createSerializedDataRef(bool use_basic_type) const override
Sérialise la donnée.
DataInterfaceType * cloneTrueEmpty() override
Clone la donnée mais sans éléments.
void allocateBufferForSerializedData(ISerializedData *sdata) override
Alloue la mémoire pour lire les valeurs sérialisées sdata.
DataStorageTypeInfo storageTypeInfo() const override
Informations sur le type de conteneur de la donnée.
IArray2DataInternalT< DataType > * _internal() override
Array2< DataType > & value() override
Valeur de la donnée.
Integer dimension() const override
Dimension. 0 pour un scalaire, 1 pour un tableau mono-dim, 2 pour un tableau bi-dim.
DataInterfaceType * cloneTrue() override
Clone la donnée.
Ref< DataInterfaceType > cloneTrueEmptyRef() override
Clone la donnée mais sans éléments.
void swapValues(IData *data) override
Échange les valeurs de data avec celles de l'instance.
Array2View< DataType > view() override
Vue sur la donnée.
void visit(IDataVisitor *visitor) override
Applique le visiteur à la donnée.
Integer multiTag() const override
Tag multiple. 0 si non multiple, 1 si multiple, 2 si multiple pour les variable MultiArray (obsolète)
void visitScalar(IScalarDataVisitor *) override
Applique le visiteur à la donnée.
void setAllocationInfo(const DataAllocationInfo &v) override
Positionne les informations sur l'allocation.
void setShape(const ArrayShape &new_shape) override
Positionne la forme du tableau.
eDataType dataType() const override
Type de la donnée.
ArrayShape shape() const override
Forme du tableau pour une donnée 1D ou 2D.
void visitArray(IArrayDataVisitor *) override
Applique le visiteur à la donnée.
void copy(const IData *data) override
Copie la donnée data dans l'instance courante.
void setName(const String &name) override
Positionne le nom de la donnée (interne)
Tableau d'items de types quelconques.
Informations sur l'allocation d'une donnée.
Classe pour gérer la compression/décompression des données.
Informations pour le calcul du hash d'une donnée.
Informations pour construire une instance de 'IData'.
Informations de type pour un conteneur de données.
Interface d'une donnée tableau bi-dimensionnel d'un type T.
Interface d'une donnée tableau bi-dimensionnel d'un type T.
Interface du pattern visitor pour une donnée tableau 2D.
Interface du pattern visitor pour une donnée tableau.
Interface d'un service permettant de compresser/décompresser des données.
Interface d'une opération sur une donnée.
Interface du pattern visitor pour une donnée.
Interface d'un algorithme de hashage.
Interface pour un 'IData' d'un type numérique.
Interface du pattern visitor pour une donnée scalaire.
Interface d'une donnée sérialisée.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Vue constante d'un tableau de type T.
Interface d'un sérialiseur.
Interface du gestionnaire de traces.
Options pour configurer les allocations.
Exception lorsqu'une opération n'est pas supportée.
Implémentation thread-safe d'un compteur de référence.
Chaîne de caractères unicode.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
eDataType
Type d'une donnée.