Interface d'une donnée. Plus de détails...
#include <arcane/core/IData.h>
Fonctions membres publiques | |
virtual eDataType | dataType () const =0 |
Type de la donnée. | |
virtual Integer | dimension () const =0 |
Dimension. 0 pour un scalaire, 1 pour un tableau mono-dim, 2 pour un tableau bi-dim. | |
virtual Integer | multiTag () const =0 |
Tag multiple. 0 si non multiple, 1 si multiple, 2 si multiple pour les variable MultiArray (obsolète) | |
virtual IData * | clone ()=0 |
Clone la donnée. L'instance créée doit être détruite par l'opérateur 'delete'. | |
virtual IData * | cloneEmpty ()=0 |
Clone la donnée mais sans éléments. L'instance créée doit être détruite par l'opérateur 'delete'. | |
virtual Ref< IData > | cloneRef ()=0 |
Clone la donnée. | |
virtual Ref< IData > | cloneEmptyRef ()=0 |
Clone la donnée mais sans éléments. | |
virtual DataStorageTypeInfo | storageTypeInfo () const =0 |
Informations sur le type de conteneur de la donnée. | |
virtual void | serialize (ISerializer *sbuf, IDataOperation *operation)=0 |
Sérialise la donnée en appliquant l'opération operation. | |
virtual void | resize (Integer new_size)=0 |
Redimensionne la donnée. | |
virtual void | serialize (ISerializer *sbuf, Int32ConstArrayView ids, IDataOperation *operation)=0 |
Serialise la donnée pour les indices ids. | |
virtual void | fillDefault ()=0 |
Remplit la donnée avec sa valeur par défaut. | |
virtual void | setName (const String &name)=0 |
Positionne le nom de la donnée (interne) | |
virtual Ref< ISerializedData > | createSerializedDataRef (bool use_basic_type) const =0 |
Sérialise la donnée. | |
virtual void | assignSerializedData (const ISerializedData *sdata)=0 |
Assigne à la donnée les valeurs sérialisées sdata. | |
virtual void | allocateBufferForSerializedData (ISerializedData *sdata)=0 |
Alloue la mémoire pour lire les valeurs sérialisées sdata. | |
virtual void | copy (const IData *data)=0 |
Copie la donnée data dans l'instance courante. | |
virtual void | swapValues (IData *data)=0 |
Échange les valeurs de data avec celles de l'instance. | |
virtual void | computeHash (IHashAlgorithm *algo, ByteArray &output) const =0 |
Calcul une clé de hashage sur cette donnée. | |
virtual ArrayShape | shape () const =0 |
Forme du tableau pour une donnée 1D ou 2D. | |
virtual void | setShape (const ArrayShape &new_shape)=0 |
Positionne la forme du tableau. | |
virtual void | setAllocationInfo (const DataAllocationInfo &v)=0 |
Positionne les informations sur l'allocation. | |
virtual DataAllocationInfo | allocationInfo () const =0 |
Informations sur l'allocation. | |
virtual void | visit (IDataVisitor *visitor)=0 |
Applique le visiteur à la donnée. | |
virtual void | visitScalar (IScalarDataVisitor *visitor)=0 |
Applique le visiteur à la donnée. | |
virtual void | visitArray (IArrayDataVisitor *visitor)=0 |
Applique le visiteur à la donnée. | |
virtual void | visitArray2 (IArray2DataVisitor *visitor)=0 |
Applique le visiteur à la donnée. | |
virtual void | visitMultiArray2 (IMultiArray2DataVisitor *visitor) |
Applique le visiteur à la donnée. | |
virtual IDataInternal * | _commonInternal ()=0 |
Fonctions membres privées | |
ARCCORE_DECLARE_REFERENCE_COUNTED_INCLASS_METHODS () | |
Interface d'une donnée.
Cette classe gère la mémoire associée à une variable.
|
pure virtual |
Implémenté dans Arcane::Array2DataT< DataType >, Arcane::ArrayDataT< DataType >, Arcane::NumArrayDataT< DataType, RankValue >, Arcane::ScalarDataT< DataType >, Arcane::StringArrayData, et Arcane::StringScalarData.
Référencé par Arcane::VariableIOReaderMng::_checkHashFunction(), Arcane::VariableUtils::prefetchVariableAsync(), et Arcane::VariableSynchronizer::synchronizeData().
|
pure virtual |
Alloue la mémoire pour lire les valeurs sérialisées sdata.
Cette méthode positionne sdata->setBuffer() qui contiendra la mémoire nécessaire pour lire les données sérialisées.
Implémenté dans Arcane::Array2DataT< DataType >, Arcane::ArrayDataT< DataType >, Arcane::NumArrayDataT< DataType, RankValue >, Arcane::ScalarDataT< DataType >, Arcane::StringArrayData, et Arcane::StringScalarData.
|
pure virtual |
Informations sur l'allocation.
Implémenté dans Arcane::Array2DataT< DataType >, Arcane::ArrayDataT< DataType >, Arcane::NumArrayDataT< DataType, RankValue >, Arcane::ScalarDataT< DataType >, Arcane::StringArrayData, et Arcane::StringScalarData.
|
pure virtual |
Assigne à la donnée les valeurs sérialisées sdata.
Le tampon contenant les valeurs de sérialisation doit avoir être alloué par appel à allocateBufferForSerializedData().
Implémenté dans Arcane::Array2DataT< DataType >, Arcane::ArrayDataT< DataType >, Arcane::NumArrayDataT< DataType, RankValue >, Arcane::ScalarDataT< DataType >, Arcane::StringArrayData, et Arcane::StringScalarData.
Clone la donnée. L'instance créée doit être détruite par l'opérateur 'delete'.
Implémenté dans Arcane::Array2DataT< DataType >, Arcane::ArrayDataT< DataType >, Arcane::NumArrayDataT< DataType, RankValue >, Arcane::ScalarDataT< DataType >, Arcane::StringArrayData, et Arcane::StringScalarData.
Clone la donnée mais sans éléments. L'instance créée doit être détruite par l'opérateur 'delete'.
Implémenté dans Arcane::Array2DataT< DataType >, Arcane::ArrayDataT< DataType >, Arcane::NumArrayDataT< DataType, RankValue >, Arcane::ScalarDataT< DataType >, Arcane::StringArrayData, et Arcane::StringScalarData.
Clone la donnée mais sans éléments.
Implémenté dans Arcane::Array2DataT< DataType >, Arcane::ArrayDataT< DataType >, Arcane::NumArrayDataT< DataType, RankValue >, Arcane::ScalarDataT< DataType >, Arcane::StringArrayData, et Arcane::StringScalarData.
Clone la donnée.
Implémenté dans Arcane::Array2DataT< DataType >, Arcane::ArrayDataT< DataType >, Arcane::NumArrayDataT< DataType, RankValue >, Arcane::ScalarDataT< DataType >, Arcane::StringArrayData, et Arcane::StringScalarData.
Référencé par Arcane::MemoryDataReaderWriter::write().
|
pure virtual |
Calcul une clé de hashage sur cette donnée.
La clé est ajoutée dans output. La longueur de la clé dépend de l'algorithme utilisé.
Implémenté dans Arcane::Array2DataT< DataType >, Arcane::ArrayDataT< DataType >, Arcane::NumArrayDataT< DataType, RankValue >, Arcane::ScalarDataT< DataType >, Arcane::StringArrayData, et Arcane::StringScalarData.
Référencé par Arcane::VariableIOReaderMng::_checkHashFunction().
Copie la donnée data dans l'instance courante.
La donnée data doit être du même type que l'instance.
Implémenté dans Arcane::Array2DataT< DataType >, Arcane::ArrayDataT< DataType >, Arcane::NumArrayDataT< DataType, RankValue >, Arcane::ScalarDataT< DataType >, Arcane::StringArrayData, et Arcane::StringScalarData.
Référencé par Arcane::MemoryDataReaderWriter::read().
|
pure virtual |
Sérialise la donnée.
Pour des raisons de performances, l'instance retournée peut faire directement référence à la zone mémoire de cette donnée. Par conséquent, elle n'est valide que tant que cette donnée n'est pas modifiée. Si on souhaite modifier cette instance, il faut d'abord la cloner (via IData::cloneRef()) puis sérialiser la donnée clonée.
Si use_basic_type est vrai, la donnée est sérialisée pour un type de base, à savoir DT_Byte, DT_Int16, DT_Int32, DT_Int64 ou DT_Real. Sinon, le type peut être un POD, à savoir DT_Byte, DT_Int16, DT_Int32, DT_Int64, DT_Real, DT_Real2, DT_Real3, DT_Real2x2, DT_Real3x3.
Implémenté dans Arcane::Array2DataT< DataType >, Arcane::ArrayDataT< DataType >, Arcane::NumArrayDataT< DataType, RankValue >, Arcane::ScalarDataT< DataType >, Arcane::StringArrayData, et Arcane::StringScalarData.
Référencé par Arcane::VariableIOReaderMng::_checkHashFunction().
Type de la donnée.
Implémenté dans Arcane::Array2DataT< DataType >, Arcane::ArrayDataT< DataType >, Arcane::NumArrayDataT< DataType, RankValue >, Arcane::ScalarDataT< DataType >, Arcane::StringArrayData, et Arcane::StringScalarData.
|
pure virtual |
Dimension. 0 pour un scalaire, 1 pour un tableau mono-dim, 2 pour un tableau bi-dim.
Implémenté dans Arcane::Array2DataT< DataType >, Arcane::ArrayDataT< DataType >, Arcane::NumArrayDataT< DataType, RankValue >, Arcane::ScalarDataT< DataType >, Arcane::StringArrayData, et Arcane::StringScalarData.
Remplit la donnée avec sa valeur par défaut.
Implémenté dans Arcane::Array2DataT< DataType >, Arcane::ArrayDataT< DataType >, Arcane::NumArrayDataT< DataType, RankValue >, Arcane::ScalarDataT< DataType >, Arcane::StringArrayData, et Arcane::StringScalarData.
|
pure virtual |
Tag multiple. 0 si non multiple, 1 si multiple, 2 si multiple pour les variable MultiArray (obsolète)
Implémenté dans Arcane::Array2DataT< DataType >, Arcane::ArrayDataT< DataType >, Arcane::NumArrayDataT< DataType, RankValue >, Arcane::ScalarDataT< DataType >, Arcane::StringArrayData, et Arcane::StringScalarData.
Redimensionne la donnée.
Cette opération n'a de sens que pour les données de dimension 1 ou plus. Si le nouveau nombre d'éléments est supérieur à l'ancien, les valeurs ajoutées à la donnée ne sont pas initialisées.
Implémenté dans Arcane::Array2DataT< DataType >, Arcane::ArrayDataT< DataType >, Arcane::NumArrayDataT< DataType, RankValue >, Arcane::StringArrayData, Arcane::ScalarDataT< DataType >, et Arcane::StringScalarData.
|
pure virtual |
Sérialise la donnée en appliquant l'opération operation.
Implémenté dans Arcane::Array2DataT< DataType >, Arcane::ArrayDataT< DataType >, Arcane::NumArrayDataT< DataType, RankValue >, Arcane::ScalarDataT< DataType >, Arcane::StringArrayData, et Arcane::StringScalarData.
|
pure virtual |
Serialise la donnée pour les indices ids.
Cette opération n'a de sens que pour les données de dimension 1 ou plus.
Implémenté dans Arcane::Array2DataT< DataType >, Arcane::ArrayDataT< DataType >, Arcane::NumArrayDataT< DataType, RankValue >, Arcane::ScalarDataT< DataType >, Arcane::StringArrayData, et Arcane::StringScalarData.
|
pure virtual |
Positionne les informations sur l'allocation.
Implémenté dans Arcane::Array2DataT< DataType >, Arcane::ArrayDataT< DataType >, Arcane::NumArrayDataT< DataType, RankValue >, Arcane::ScalarDataT< DataType >, Arcane::StringArrayData, et Arcane::StringScalarData.
Positionne le nom de la donnée (interne)
Implémenté dans Arcane::Array2DataT< DataType >, Arcane::ArrayDataT< DataType >, Arcane::NumArrayDataT< DataType, RankValue >, Arcane::ScalarDataT< DataType >, Arcane::StringArrayData, et Arcane::StringScalarData.
|
pure virtual |
Positionne la forme du tableau.
Implémenté dans Arcane::ScalarDataT< DataType >, Arcane::StringArrayData, Arcane::StringScalarData, Arcane::Array2DataT< DataType >, Arcane::ArrayDataT< DataType >, et Arcane::NumArrayDataT< DataType, RankValue >.
|
pure virtual |
Forme du tableau pour une donnée 1D ou 2D.
La forme n'est prise en compte que pour les dimensions supérieures à 1. Pour une donnée 1D, la forme est donc par défaut {1}. Pour un tableau 2D, la forme vaut par défaut {dim2_size}. Il est possible de changer le rang de la forme et ses valeurs tant que shape().totalNbElement()==dim2_size. Par exemple si le nombre de valeurs dim2_size vaut 12, alors il est possible d'avoir { 12 }, { 6, 2 } ou { 3, 2, 2 } comme forme.
Les valeurs ne sont pas conservés lors d'une reprise et il faut donc repositionner la forme dans ce cas. C'est à l'utilisateur de s'assurer que la forme est homogène entre les sous-domaines.
Implémenté dans Arcane::Array2DataT< DataType >, Arcane::ArrayDataT< DataType >, Arcane::NumArrayDataT< DataType, RankValue >, Arcane::ScalarDataT< DataType >, Arcane::StringArrayData, et Arcane::StringScalarData.
|
pure virtual |
Informations sur le type de conteneur de la donnée.
Implémenté dans Arcane::Array2DataT< DataType >, Arcane::ArrayDataT< DataType >, Arcane::NumArrayDataT< DataType, RankValue >, Arcane::ScalarDataT< DataType >, Arcane::StringArrayData, et Arcane::StringScalarData.
Échange les valeurs de data avec celles de l'instance.
La donnée IData doit être du même type que l'instance. Seules les valeurs sont échangés et les autres propriétés éventuelles (telles que le nom par exemple) ne sont pas modifiées.
Implémenté dans Arcane::Array2DataT< DataType >, Arcane::ArrayDataT< DataType >, Arcane::NumArrayDataT< DataType, RankValue >, Arcane::ScalarDataT< DataType >, Arcane::StringArrayData, et Arcane::StringScalarData.
|
pure virtual |
Applique le visiteur à la donnée.
Implémenté dans Arcane::Array2DataT< DataType >, Arcane::ArrayDataT< DataType >, Arcane::NumArrayDataT< DataType, RankValue >, Arcane::ScalarDataT< DataType >, Arcane::StringArrayData, Arcane::StringScalarData, Arcane::IScalarData, et Arcane::IArrayData.
Référencé par Arcane::DumpW::write().
|
pure virtual |
Applique le visiteur à la donnée.
Si la donnée n'est pas un tableau 1D, une exception NotSupportedException est lancée.
Implémenté dans Arcane::Array2DataT< DataType >, Arcane::NumArrayDataT< DataType, RankValue >, Arcane::ArrayDataT< DataType >, Arcane::ScalarDataT< DataType >, Arcane::StringArrayData, et Arcane::StringScalarData.
|
pure virtual |
Applique le visiteur à la donnée.
Si la donnée n'est pas un tableau 2D, une exception NotSupportedException est lancée.
Implémenté dans Arcane::ArrayDataT< DataType >, Arcane::NumArrayDataT< DataType, RankValue >, Arcane::Array2DataT< DataType >, Arcane::ScalarDataT< DataType >, Arcane::StringArrayData, et Arcane::StringScalarData.
|
virtual |
Applique le visiteur à la donnée.
Si la donnée n'est pas un tableau 2D, une exception NotSupportedException est lancée.
Définition à la ligne 55 du fichier core/Data.cc.
Références ARCANE_THROW.
|
pure virtual |
Applique le visiteur à la donnée.
Si la donnée n'est pas scalaire, une exception NotSupportedException est lancée.
Implémenté dans Arcane::Array2DataT< DataType >, Arcane::ArrayDataT< DataType >, Arcane::NumArrayDataT< DataType, RankValue >, Arcane::ScalarDataT< DataType >, Arcane::StringArrayData, et Arcane::StringScalarData.