Two-dimensional array data of type DataType. More...
#include <arcane/impl/internal/Array2Data.h>
Classes | |
| class | Impl |
Public Types | |
| typedef Array2DataT< DataType > | ThatClass |
| typedef IArray2DataT< DataType > | DataInterfaceType |
| Public Types inherited from Arcane::IArray2DataT< DataType > | |
| typedef IArray2DataT< DataType > | ThatClass |
Public Member Functions | |
| Array2DataT (ITraceMng *trace) | |
| Array2DataT (const DataStorageBuildInfo &dsbi) | |
| Array2DataT (const Array2DataT< DataType > &rhs) | |
| Integer | dimension () const override |
| Dimension. 0 for a scalar, 1 for a mono-dim array, 2 for a bi-dim array. | |
| Integer | multiTag () const override |
| Multi-tag. 0 if not multiple, 1 if multiple, 2 if multiple for MultiArray variables (obsolete). | |
| eDataType | dataType () const override |
| Data type. | |
| void | serialize (ISerializer *sbuf, IDataOperation *operation) override |
| Serializes the data by applying the operation. | |
| void | serialize (ISerializer *sbuf, Int32ConstArrayView ids, IDataOperation *operation) override |
| Serialize the data for the indices ids. | |
| Array2< DataType > & | value () override |
| Data value. | |
| const Array2< DataType > & | value () const override |
| Data value. | |
| Array2View< DataType > | view () override |
| View on the data. | |
| ConstArray2View< DataType > | view () const override |
| Constant view on the data. | |
| void | resize (Integer new_size) override |
| Resize the data. | |
| IData * | clone () override |
| Clone the data. The created instance must be destroyed by the 'delete' operator. | |
| IData * | cloneEmpty () override |
| Clone the data but without elements. The created instance must be destroyed by the 'delete' operator. | |
| Ref< IData > | cloneRef () override |
| Clone the data. | |
| Ref< IData > | cloneEmptyRef () override |
| Clone the data but without elements. | |
| DataStorageTypeInfo | storageTypeInfo () const override |
| Information about the data container type. | |
| DataInterfaceType * | cloneTrue () override |
| Clone the data. | |
| DataInterfaceType * | cloneTrueEmpty () override |
| Clone the data but without elements. | |
| Ref< DataInterfaceType > | cloneTrueRef () override |
| Clone the data. | |
| Ref< DataInterfaceType > | cloneTrueEmptyRef () override |
| Clone the data but without elements. | |
| void | fillDefault () override |
| Fills the data with its default value. | |
| void | setName (const String &name) override |
| Sets the name of the data (internal). | |
| Ref< ISerializedData > | createSerializedDataRef (bool use_basic_type) const override |
| Serialize the data. | |
| void | allocateBufferForSerializedData (ISerializedData *sdata) override |
| Allocate memory to read the serialized values sdata. | |
| void | assignSerializedData (const ISerializedData *sdata) override |
| Assign the serialized values sdata to the data. | |
| void | copy (const IData *data) override |
| Copy the data data into the current instance. | |
| void | swapValues (IData *data) override |
| Swap the values of data with those of the instance. | |
| void | computeHash (IHashAlgorithm *algo, ByteArray &output) const override |
| Compute a hash key on this data. | |
| void | computeHash (DataHashInfo &hash_algo) const |
| ArrayShape | shape () const override |
| Array shape for a 1D or 2D data item. | |
| void | setShape (const ArrayShape &new_shape) override |
| Sets the array shape. | |
| void | setAllocationInfo (const DataAllocationInfo &v) override |
| Sets the allocation information. | |
| DataAllocationInfo | allocationInfo () const override |
| Allocation information. | |
| void | visit (IArray2DataVisitor *visitor) |
| void | visit (IDataVisitor *visitor) override |
| Applies the visitor to the data. | |
| void | visitScalar (IScalarDataVisitor *) override |
| Apply the visitor to the data. | |
| void | visitArray (IArrayDataVisitor *) override |
| Apply the visitor to the data. | |
| void | visitArray2 (IArray2DataVisitor *visitor) override |
| Apply the visitor to the data. | |
| void | swapValuesDirect (ThatClass *true_data) |
| void | changeAllocator (const MemoryAllocationOptions &alloc_info) |
| IArray2DataInternalT< DataType > * | _internal () override |
| IDataInternal * | _commonInternal () override |
| Public Member Functions inherited from Arcane::ReferenceCounterImpl | |
| void | addReference () |
| void | removeReference () |
| void | _internalAddReference () |
| bool | _internalRemoveReference () |
| Public Member Functions inherited from Arcane::IData | |
| virtual void | visitMultiArray2 (IMultiArray2DataVisitor *visitor) |
| Apply the visitor to the data. | |
Static Public Member Functions | |
| static DataStorageTypeInfo | staticStorageTypeInfo () |
Private Member Functions | |
| ARCCORE_DEFINE_REFERENCE_COUNTED_INCLASS_METHODS () | |
| IArray2DataT< DataType > * | _cloneTrue () const |
| IArray2DataT< DataType > * | _cloneTrueEmpty () const |
Private Attributes | |
| UniqueArray2< DataType > | m_value |
| Data. | |
| ITraceMng * | m_trace |
| IArray2DataInternalT< DataType > * | m_internal |
| ArrayShape | m_shape |
| DataAllocationInfo | m_allocation_info |
Friends | |
| class | Impl |
Two-dimensional array data of type DataType.
Definition at line 47 of file Array2Data.h.
| typedef IArray2DataT<DataType> Arcane::Array2DataT< DataType >::DataInterfaceType |
Definition at line 58 of file Array2Data.h.
| typedef Array2DataT<DataType> Arcane::Array2DataT< DataType >::ThatClass |
Definition at line 57 of file Array2Data.h.
|
explicit |
Definition at line 54 of file Array2Data.inst.h.
|
explicit |
Definition at line 78 of file Array2Data.inst.h.
| Arcane::Array2DataT< DataType >::Array2DataT | ( | const Array2DataT< DataType > & | rhs | ) |
Definition at line 65 of file Array2Data.inst.h.
|
override |
Definition at line 89 of file Array2Data.inst.h.
|
inlineprivate |
Definition at line 155 of file Array2Data.h.
|
inlineprivate |
Definition at line 156 of file Array2Data.h.
|
inlineoverridevirtual |
Implements Arcane::IData.
Definition at line 139 of file Array2Data.h.
|
inlineoverridevirtual |
Implements Arcane::IArray2DataT< DataType >.
Definition at line 138 of file Array2Data.h.
|
overridevirtual |
Allocate memory to read the serialized values sdata.
This method sets sdata->setBuffer(), which will contain the memory needed to read the serialized data.
Implements Arcane::IData.
Definition at line 167 of file Array2Data.inst.h.
References ARCANE_FATAL, Arcane::ISerializedData::baseDataType(), dataType(), Arcane::ISerializedData::extents(), Arcane::ISerializedData::isMultiSize(), m_value, Arcane::ISerializedData::memorySize(), Arcane::ISerializedData::setWritableBytes(), and Arcane::ISerializedData::shape().
|
inlineoverridevirtual |
|
overridevirtual |
Assign the serialized values sdata to the data.
The buffer containing the serialization values must have be allocated by calling allocateBufferForSerializedData().
Implements Arcane::IData.
Definition at line 198 of file Array2Data.inst.h.
| void Arcane::Array2DataT< DataType >::changeAllocator | ( | const MemoryAllocationOptions & | alloc_info | ) |
Definition at line 518 of file Array2Data.inst.h.
|
inlineoverridevirtual |
Clone the data. The created instance must be destroyed by the 'delete' operator.
Implements Arcane::IData.
Definition at line 79 of file Array2Data.h.
|
inlineoverridevirtual |
Clone the data but without elements. The created instance must be destroyed by the 'delete' operator.
Implements Arcane::IData.
Definition at line 80 of file Array2Data.h.
|
inlineoverridevirtual |
Clone the data but without elements.
Implements Arcane::IData.
Definition at line 82 of file Array2Data.h.
References cloneTrueEmpty(), and Arcane::makeRef().
|
inlineoverridevirtual |
Clone the data.
Implements Arcane::IData.
Definition at line 81 of file Array2Data.h.
References cloneTrue(), and Arcane::makeRef().
|
inlineoverridevirtual |
Clone the data.
Implements Arcane::IArray2DataT< DataType >.
Definition at line 84 of file Array2Data.h.
Referenced by cloneRef().
|
inlineoverridevirtual |
Clone the data but without elements.
Implements Arcane::IArray2DataT< DataType >.
Definition at line 85 of file Array2Data.h.
Referenced by cloneEmptyRef().
|
inlineoverridevirtual |
Clone the data but without elements.
Implements Arcane::IArray2DataT< DataType >.
Definition at line 91 of file Array2Data.h.
References Arcane::makeRef().
|
inlineoverridevirtual |
Clone the data.
Implements Arcane::IArray2DataT< DataType >.
Definition at line 86 of file Array2Data.h.
References Arcane::makeRef().
| void Arcane::Array2DataT< DataType >::computeHash | ( | DataHashInfo & | hash_algo | ) | const |
Definition at line 453 of file Array2Data.inst.h.
|
overridevirtual |
Compute a hash key on this data.
The key is added to output. The length of the key depends on the algorithm used.
Implements Arcane::IData.
Definition at line 427 of file Array2Data.inst.h.
References Arcane::IHashAlgorithm::computeHash64(), Arcane::Array< T >::data(), Arcane::SpanImpl< T, SizeType, Extent >::data(), m_value, Arcane::AbstractArray< T >::size(), and Arcane::SpanImpl< T, SizeType, Extent >::size().
|
overridevirtual |
Copy the data data into the current instance.
The data data must be of the same type as the instance.
Implements Arcane::IData.
Definition at line 473 of file Array2Data.inst.h.
References m_value.
|
overridevirtual |
Serialize the data.
For performance reasons, the returned instance may directly reference the memory area of this data. Consequently, it is only valid as long as this data is not modified. If you wish to modify this instance, you must first clone it (via IData::cloneRef()) and then serialize the cloned data.
If use_basic_type is true, the data is serialized for a basic type, namely DT_Byte, DT_Int16, DT_Int32, DT_Int64 or DT_Real. Otherwise, the type can be a POD, namely DT_Byte, DT_Int16, DT_Int32, DT_Int64, DT_Real, DT_Real2, DT_Real3, DT_Real2x2, DT_Real3x3.
Implements Arcane::IData.
Definition at line 133 of file Array2Data.inst.h.
References Arcane::arcaneCreateSerializedDataRef(), dataType(), m_value, Arcane::Array< T >::resize(), shape(), and Arcane::SpanImpl< T, SizeType, Extent >::size().
|
inlineoverridevirtual |
Data type.
Implements Arcane::IData.
Definition at line 71 of file Array2Data.h.
Referenced by allocateBufferForSerializedData(), and createSerializedDataRef().
|
inlineoverridevirtual |
Dimension. 0 for a scalar, 1 for a mono-dim array, 2 for a bi-dim array.
Implements Arcane::IData.
Definition at line 69 of file Array2Data.h.
|
overridevirtual |
Fills the data with its default value.
Implements Arcane::IData.
Definition at line 409 of file Array2Data.inst.h.
References m_value.
|
inlineoverridevirtual |
Multi-tag. 0 if not multiple, 1 if multiple, 2 if multiple for MultiArray variables (obsolete).
Implements Arcane::IData.
Definition at line 70 of file Array2Data.h.
|
overridevirtual |
Resize the data.
This operation only makes sense for data of dimension 1 or more. If the new number of elements is greater than the old one, the values added to the data are not initialized.
Implements Arcane::IData.
Definition at line 124 of file Array2Data.inst.h.
References m_value.
|
overridevirtual |
Serializes the data by applying the operation.
Implements Arcane::IData.
Definition at line 208 of file Array2Data.inst.h.
References ARCANE_FATAL, Arcane::ISerializer::getSpan(), Arcane::Int64, m_value, Arcane::ISerializer::mode(), Arcane::ISerializer::ModeGet, Arcane::ISerializer::ModePut, Arcane::ISerializer::putSpan(), Arcane::ISerializer::ReadAdd, Arcane::ISerializer::readMode(), Arcane::ISerializer::ReadReplace, and Arcane::ISerializer::reserveSpan().
|
overridevirtual |
Serialize the data for the indices ids.
This operation only makes sense for data of dimension 1 or more.
Implements Arcane::IData.
Definition at line 280 of file Array2Data.inst.h.
References ARCANE_FATAL, Arcane::Array< T >::data(), Arcane::ISerializer::getSpan(), Arcane::Int64, m_value, Arcane::ISerializer::mode(), Arcane::ISerializer::ModeGet, Arcane::ISerializer::ModePut, Arcane::ISerializer::putSpan(), Arcane::ISerializer::ReadAdd, Arcane::ISerializer::readMode(), Arcane::ISerializer::ReadReplace, Arcane::ISerializer::reserveSpan(), Arcane::Array< T >::resize(), Arcane::ConstArrayView< T >::size(), Arcane::SpanImpl< T, SizeType, Extent >::size(), and Arcane::Array< T >::view().
|
overridevirtual |
Sets the allocation information.
Implements Arcane::IData.
Definition at line 506 of file Array2Data.inst.h.
References m_value.
|
overridevirtual |
Sets the name of the data (internal).
Implements Arcane::IData.
Definition at line 418 of file Array2Data.inst.h.
References m_value.
|
inlineoverridevirtual |
|
inlineoverridevirtual |
Array shape for a 1D or 2D data item.
The shape is only considered for dimensions greater than 1. For a 1D data item, the shape is therefore by default {1}. For a 2D array, the shape defaults to {dim2_size}. It is possible to change the rank of the shape and its values as long as shape().totalNbElement()==dim2_size. For example, if the number of values dim2_size is 12, then it is possible to have { 12 }, { 6, 2 } or { 3, 2, 2 } as the shape.
The values are not preserved during a restart, so the shape must be repositioned in this case. It is up to the user to ensure that the shape is homogeneous across sub-domains.
Implements Arcane::IData.
Definition at line 105 of file Array2Data.h.
Referenced by createSerializedDataRef().
|
static |
Definition at line 101 of file Array2Data.inst.h.
|
overridevirtual |
Information about the data container type.
Implements Arcane::IData.
Definition at line 115 of file Array2Data.inst.h.
|
overridevirtual |
Swap the values of data with those of the instance.
The data IData must be of the same type as the instance. Only the values are swapped and other possible properties (such as the name, for example) are not modified.
Implements Arcane::IData.
Definition at line 485 of file Array2Data.inst.h.
| void Arcane::Array2DataT< DataType >::swapValuesDirect | ( | ThatClass * | true_data | ) |
Definition at line 497 of file Array2Data.inst.h.
|
inlineoverridevirtual |
Data value.
Implements Arcane::IArray2DataT< DataType >.
Definition at line 75 of file Array2Data.h.
References m_value.
|
inlineoverridevirtual |
Data value.
Implements Arcane::IArray2DataT< DataType >.
Definition at line 74 of file Array2Data.h.
References m_value.
Referenced by Arcane::Array2DataT< DataType >::Impl::memoryView().
|
inlineoverridevirtual |
Constant view on the data.
Implements Arcane::IArray2DataT< DataType >.
Definition at line 77 of file Array2Data.h.
References m_value.
|
inlineoverridevirtual |
View on the data.
Implements Arcane::IArray2DataT< DataType >.
Definition at line 76 of file Array2Data.h.
References m_value.
|
inline |
Definition at line 110 of file Array2Data.h.
|
inlineoverridevirtual |
Applies the visitor to the data.
Implements Arcane::IData.
Definition at line 114 of file Array2Data.h.
|
inlineoverridevirtual |
Apply the visitor to the data.
If the data is not a 1D array, an exception NotSupportedException is thrown.
Implements Arcane::IData.
Definition at line 122 of file Array2Data.h.
References ARCANE_THROW.
|
inlineoverridevirtual |
Apply the visitor to the data.
If the data is not a 2D array, an exception NotSupportedException is thrown.
Implements Arcane::IData.
Definition at line 126 of file Array2Data.h.
|
inlineoverridevirtual |
Apply the visitor to the data.
If the data is not scalar, a NotSupportedException is thrown.
Implements Arcane::IData.
Definition at line 118 of file Array2Data.h.
References ARCANE_THROW.
|
friend |
Definition at line 53 of file Array2Data.h.
|
private |
Definition at line 151 of file Array2Data.h.
|
private |
Definition at line 149 of file Array2Data.h.
|
private |
Definition at line 150 of file Array2Data.h.
|
private |
Definition at line 148 of file Array2Data.h.
|
private |
Data.
Definition at line 147 of file Array2Data.h.
Referenced by allocateBufferForSerializedData(), computeHash(), copy(), createSerializedDataRef(), fillDefault(), resize(), serialize(), serialize(), setAllocationInfo(), setName(), value(), value(), view(), and view().