12#ifndef ARCANE_IMPL_INTERNAL_ARRAYDATA_H
13#define ARCANE_IMPL_INTERNAL_ARRAYDATA_H
19#include "arcane/utils/ArrayShape.h"
20#include "arcane/utils/String.h"
21#include "arcane/utils/IDataCompressor.h"
22#include "arcane/utils/Array.h"
23#include "arcane/utils/MemoryView.h"
24#include "arcane/utils/Ref.h"
25#include "arcane/utils/NotSupportedException.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; }
106 visitor->applyDataVisitor(
this);
123 void swapValuesDirect(ThatClass*
true_data);
157template<
typename DataType>
170 Integer
capacity()
const override {
return m_p->m_value.capacity(); }
171 void shrink()
const override { m_p->m_value.shrink(); }
173 void dispose()
override { m_p->m_value.dispose(); }
182 buf.m_original_dim1_size = values.size();
183 m_p->m_value.clear();
184 m_p->m_value.shrink();
192 m_p->m_value.resize(buf.m_original_dim1_size);
194 compressor->decompress(buf.m_buffer,asWritableBytes(values));
203 return m_p->view().size();
#define ARCANE_THROW(exception_class,...)
Macro pour envoyer une exception avec formattage.
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.
void resize(Integer new_size) override
Redimensionne le conteneur.
INumericDataInternal * numericData() override
Interface générique pour les données numériques (nullptr si la donnée n'est pas numérique)
bool decompressAndFill(DataCompressionBuffer &buf) override
Décompresse les données et remplit les valeurs de la donnée.
Integer capacity() const override
Capacité allouée par le conteneur.
Array< DataType > & _internalDeprecatedValue() override
Conteneur associé à la donnée.
void changeAllocator(const MemoryAllocationOptions &v) override
Change l'allocateur de la variable.
void dispose() override
Vide le conteneur et libère la mémoire alloué.
void shrink() const override
Libère la mémoire additionnelle éventuellement allouée.
Int32 extent0() const override
Nombre d'éléments de la première dimension.
MutableMemoryView memoryView() override
Vue mémoire sur la donnée.
bool compressAndClear(DataCompressionBuffer &buf) override
Compresse les données et libère la mémoire associée.
Donnée tableau d'un type T.
IData * cloneEmpty() override
Clone la donnée mais sans éléments. L'instance créée doit être détruite par l'opérateur 'delete'.
ArrayView< DataType > view() override
Vue sur la donnée.
eDataType dataType() const override
Type de la donnée.
ConstArrayView< DataType > view() const override
Vue constante sur la donnée.
Ref< ISerializedData > createSerializedDataRef(bool use_basic_type) const override
Sérialise la donnée.
void serialize(ISerializer *sbuf, IDataOperation *operation) override
Sérialise la donnée en appliquant l'opération operation.
void allocateBufferForSerializedData(ISerializedData *sdata) override
Alloue la mémoire pour lire les valeurs sérialisées sdata.
void visitScalar(IScalarDataVisitor *) override
Applique le visiteur à la donnée.
void computeHash(IHashAlgorithm *algo, ByteArray &output) const override
Calcul une clé de hashage sur cette donnée.
DataStorageTypeInfo storageTypeInfo() const override
Informations sur le type de conteneur de la donnée.
ArrayShape shape() const override
Forme du tableau pour une donnée 1D ou 2D.
Ref< IData > cloneRef() override
Clone la donnée.
const Array< DataType > & value() const override
Valeur constante de la donnée.
void setName(const String &name) override
Positionne le nom de la donnée (interne)
void visitArray2(IArray2DataVisitor *) override
Applique le visiteur à la donnée.
void visitArray(IArrayDataVisitor *visitor) override
Applique le visiteur à la donnée.
DataAllocationInfo allocationInfo() const override
Informations sur l'allocation.
DataInterfaceType * cloneTrue() override
Clone la donnée.
void visit(IArrayDataVisitor *visitor) override
Applique le visiteur à la donnée.
void swapValues(IData *data) override
Échange les valeurs de data avec celles de l'instance.
void assignSerializedData(const ISerializedData *sdata) override
Assigne à la donnée les valeurs sérialisées sdata.
DataInterfaceType * cloneTrueEmpty() override
Clone la donnée mais sans éléments.
UniqueArray< DataType > m_value
Donnée.
Array< DataType > & value() override
Valeur de 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 fillDefault() override
Remplit la donnée avec sa valeur par défaut.
void visit(IDataVisitor *visitor) override
Applique le visiteur à la donnée.
Integer dimension() const override
Dimension. 0 pour un scalaire, 1 pour un tableau mono-dim, 2 pour un tableau bi-dim.
void copy(const IData *data) override
Copie la donnée data dans l'instance courante.
Ref< DataInterfaceType > cloneTrueEmptyRef() override
Clone la donnée mais sans éléments.
Ref< IData > cloneEmptyRef() override
Clone la donnée mais sans éléments.
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'.
void setAllocationInfo(const DataAllocationInfo &v) override
Positionne les informations sur l'allocation.
void setShape(const ArrayShape &new_shape) override
Positionne la forme du tableau.
IDataInternal * _commonInternal() override
Ref< DataInterfaceType > cloneTrueRef() override
Clone la donnée.
IArrayDataInternalT< DataType > * _internal() override
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 du pattern visitor pour une donnée tableau 2D.
Interface d'une donnée tableau d'un type T.
Interface d'une donnée tableau d'un type T.
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.
void resize(Int64 s)
Change le nombre d'éléments du tableau à s.
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.