16#include "arcane/utils/NotSupportedException.h"
17#include "arcane/utils/NotImplementedException.h"
18#include "arcane/utils/ArgumentException.h"
19#include "arcane/utils/TraceInfo.h"
20#include "arcane/utils/ITraceMng.h"
21#include "arcane/utils/IHashAlgorithm.h"
22#include "arcane/utils/Array.h"
23#include "arcane/utils/ArrayShape.h"
25#include "arcane/core/datatype/DataAllocationInfo.h"
26#include "arcane/core/datatype/DataStorageTypeInfo.h"
27#include "arcane/core/datatype/DataStorageBuildInfo.h"
28#include "arcane/core/datatype/DataTypeTraits.h"
30#include "arcane/impl/SerializedData.h"
31#include "arcane/impl/DataStorageFactory.h"
33#include "arcane/core/ISerializer.h"
34#include "arcane/core/IDataVisitor.h"
36#include "arcane/core/internal/IDataInternal.h"
53 ARCCORE_DEFINE_REFERENCE_COUNTED_INCLASS_METHODS();
70 Integer
multiTag()
const override {
return 0; }
132 ThatClass* _cloneTrueEmpty()
const {
return new ThatClass(m_trace); }
170: m_trace(
dsbi.traceMng())
171, m_internal(
new Impl(this))
176StringArrayData(ITraceMng* trace)
178, m_internal(new Impl(this))
182StringArrayData(
const StringArrayData& rhs)
184, m_trace(rhs.m_trace)
185, m_internal(new Impl(this))
186, m_allocation_info(rhs.m_allocation_info)
201DataStorageTypeInfo StringArrayData::
202staticStorageTypeInfo()
205 Int32 nb_basic_type = 0;
208 return DataStorageTypeInfo(bdt,nb_basic_type,
dimension,multi_tag);
217 return staticStorageTypeInfo();
235 Int64 len = str.size();
250 Int64 len = str.size();
252 for (Int64 z = 0; z < len; ++z)
289 Int64 len = dimensions[i];
304 ARCANE_UNUSED(operation);
307 if (mode == ISerializer::ModeReserve) {
309 sbuf->reserveInteger(1);
310 for (Integer z = 0; z < size; ++z)
315 sbuf->putInteger(size);
316 for (Integer z = 0; z < size; ++z)
320 switch (
sbuf->readMode()) {
322 Integer size =
sbuf->getInteger();
324 for (Integer z = 0; z < size; ++z)
343 ARCANE_UNUSED(operation);
365 s->computeHash(
algo, output);
377 context->updateHash(asBytes(x.bytes()));
#define ARCANE_THROW(exception_class,...)
Macro pour envoyer une exception avec formattage.
Tableau d'items de types quelconques.
Informations sur l'allocation d'une donnée.
Informations pour le calcul du hash d'une donnée.
Informations pour construire une instance de 'IData'.
static void registerDataFactory(IDataFactoryMng *dfm)
Enregistre dans dfm une fabrique pour la donnée DataType.
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'une donnée tableau 1D.
Interface du gestionnaire de fabrique d'une donnée.
Interface d'une opération sur une donnée.
Interface du pattern visitor pour une donnée.
Contexte pour calculer un hash de manière incrémentale.
Interface d'un algorithme de hashage.
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.
Integer capacity() const override
Capacité allouée par le conteneur.
void dispose() override
Vide le conteneur et libère la mémoire alloué.
void resize(Integer new_size) override
Redimensionne le conteneur.
void reserve(Integer new_capacity) override
Réserve de la mémoire pour new_capacity éléments.
void computeHash(DataHashInfo &hash_info) override
Calcule le hash de la donnée.
void shrink() const override
Libère la mémoire additionnelle éventuellement allouée.
Array< DataType > & _internalDeprecatedValue() override
Conteneur associé à la donnée.
Donnée tableau d'une chaîne de caractères unicode (spécialisation)
Ref< IData > cloneEmptyRef() override
Clone la donnée mais sans éléments.
void copy(const IData *data) override
Copie la donnée data dans l'instance courante.
ArrayView< DataType > view() override
Vue sur la donnée.
void setName(const String &name) override
Positionne le nom de la donnée (interne)
Ref< ISerializedData > createSerializedDataRef(bool use_basic_type) const override
Sérialise la donnée.
void resize(Integer new_size) override
Redimensionne la donnée.
Ref< IData > cloneRef() override
Clone la donnée.
void setShape(const ArrayShape &) override
Positionne la forme du tableau.
Integer multiTag() const override
Tag multiple. 0 si non multiple, 1 si multiple, 2 si multiple pour les variable MultiArray (obsolète)
void visitArray(IArrayDataVisitor *visitor) override
Applique le visiteur à la donnée.
IArrayDataInternalT< DataType > * _internal() override
void assignSerializedData(const ISerializedData *sdata) override
Assigne à la donnée les valeurs sérialisées sdata.
Ref< DataInterfaceType > cloneTrueRef() override
Clone la donnée.
eDataType dataType() const override
Type de la donnée.
DataStorageTypeInfo storageTypeInfo() const override
Informations sur le type de conteneur de la donnée.
void visitScalar(IScalarDataVisitor *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.
ArrayShape shape() const override
Forme du tableau pour une donnée 1D ou 2D.
Array< DataType > & value() override
Valeur de la donnée.
void computeHash(IHashAlgorithm *algo, ByteArray &output) const override
Calcul une clé de hashage sur cette donnée.
void setAllocationInfo(const DataAllocationInfo &v) override
Positionne les informations sur l'allocation.
void visit(IArrayDataVisitor *visitor) override
Applique le visiteur à la donnée.
IData * cloneEmpty() override
Clone la donnée mais sans éléments. L'instance créée doit être détruite par l'opérateur 'delete'.
void swapValues(IData *data) override
Échange les valeurs de data avec celles de l'instance.
void visit(IDataVisitor *visitor) override
Applique le visiteur à la donnée.
UniqueArray< DataType > m_value
Donnée.
void serialize(ISerializer *sbuf, IDataOperation *operation) override
Sérialise la donnée en appliquant l'opération operation.
DataAllocationInfo allocationInfo() const override
Informations sur l'allocation.
DataInterfaceType * cloneTrueEmpty() override
Clone la donnée mais sans éléments.
DataInterfaceType * cloneTrue() override
Clone la donnée.
void fillDefault() override
Remplit la donnée avec sa valeur par défaut.
Ref< DataInterfaceType > cloneTrueEmptyRef() 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.
IDataInternal * _commonInternal() override
void visitArray2(IArray2DataVisitor *visitor) override
Applique le visiteur à la donnée.
IData * clone() override
Clone la donnée. L'instance créée doit être détruite par l'opérateur 'delete'.
const Array< DataType > & value() const override
Valeur constante de la donnée.
ConstArrayView< DataType > view() const override
Vue constante sur la donnée.
void dispose()
Libère la mémoire utilisée par le tableau.
Integer capacity() const
Capacité (nombre d'éléments alloués) du vecteur.
Integer size() const
Nombre d'éléments du vecteur.
Int64 largeSize() const
Nombre d'éléments du vecteur (en 64 bits)
Exception lorsqu'un argument est invalide.
void copy(Span< const T > rhs)
Copie les valeurs de rhs dans l'instance.
void reserve(Int64 new_capacity)
Réserve le mémoire pour new_capacity éléments.
void resize(Int64 s)
Change le nombre d'éléments du tableau à s.
void fill(ConstReferenceType value)
Remplit le tableau avec la valeur value.
void shrink()
Réalloue pour libérer la mémoire non utilisée.
Vue constante d'un tableau de type T.
constexpr Integer size() const noexcept
Nombre d'éléments du tableau.
Interface d'un sérialiseur.
eMode
Mode de fonctionnement du sérialiseur.
@ ModePut
Le sérialiseur attend des reserve()
@ ModeGet
Le sérialiseur attend des get()
@ ReadAdd
Ajoute aux éléments actuels ceux lus.
@ ReadReplace
Replace les éléments actuels par ceux lus.
Interface du gestionnaire de traces.
Exception lorsqu'une fonction n'est pas implémentée.
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.
Vecteur 1D de données avec sémantique par valeur (style STL).
void swap(UniqueArray< T > &rhs)
Échange les valeurs de l'instance avec celles de rhs.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
Ref< ISerializedData > arcaneCreateSerializedDataRef(eDataType data_type, Int64 memory_size, Integer nb_dim, Int64 nb_element, Int64 nb_base_element, bool is_multi_size, Int64ConstArrayView dimensions)
Créé des données sérialisées.
eDataType
Type d'une donnée.
@ DT_Byte
Donnée de type octet.
eBasicDataType
Type d'une donnée de base.