Internal base class for arrays. More...
#include <arccore/common/AbstractArray.h>
Public Member Functions | |
| IMemoryAllocator * | allocator () const |
| MemoryAllocationOptions | allocationOptions () const |
| void | setDebugName (const String &name) |
| Sets the array name for debug information. | |
| String | debugName () const |
| Debug name (null if no name specified). | |
Protected Member Functions | |
| virtual bool | _isUseOwnMetaData () const |
| Indicates if m_md refers to m_meta_data. | |
| void | _swapMetaData (AbstractArrayBase &rhs) |
| void | _copyMetaData (const AbstractArrayBase &rhs) |
| void | _allocateMetaData () |
| void | _deallocateMetaData (ArrayMetaData *md) |
| void | _checkValidSharedArray () |
Static Protected Member Functions | |
| static constexpr RunQueue * | _nullRunQueue () |
| Explicit method for a null RunQueue. | |
Protected Attributes | |
| ArrayMetaData * | m_md = nullptr |
| ArrayMetaData | m_meta_data |
Internal base class for arrays.
This class only manages metadata for arrays such as the number of elements or capacity.
m_md is a pointer containing the array's metadata. If the array is shared (SharedArray, SharedArray2), then this pointer is dynamically allocated and in this case _isUseOwnMetaData() must return false. If the array is not shared (UniqueArray or UniqueArray2), then the metadata is kept directly in the array instance to avoid unnecessary allocations and m_md then points to m_meta_data. In all cases, you must not use m_meta_data directly, but always go through m_md.
Definition at line 47 of file AbstractArray.h.
|
inline |
Definition at line 51 of file AbstractArray.h.
|
inlineprotected |
Definition at line 116 of file AbstractArray.h.
|
inlineprotected |
Definition at line 141 of file AbstractArray.h.
|
inlineprotected |
Definition at line 107 of file AbstractArray.h.
|
inlineprotected |
Definition at line 133 of file AbstractArray.h.
|
inlineprotectedvirtual |
Indicates if m_md refers to m_meta_data.
This is the case for UniqueArray and UniqueArray2 but not for SharedArray and SharedArray2.
Reimplemented in Arcane::SharedArray2< T >, Arcane::SharedArray2< BFloat16 >, Arcane::SharedArray2< BFloat16 >, Arcane::SharedArray2< bool >, Arcane::SharedArray2< bool >, Arcane::SharedArray2< Byte >, Arcane::SharedArray2< Byte >, Arcane::SharedArray2< Float16 >, Arcane::SharedArray2< Float16 >, Arcane::SharedArray2< Float32 >, Arcane::SharedArray2< Float32 >, Arcane::SharedArray2< Int16 >, Arcane::SharedArray2< Int16 >, Arcane::SharedArray2< Int32 >, Arcane::SharedArray2< Int32 >, Arcane::SharedArray2< Int64 >, Arcane::SharedArray2< Int64 >, Arcane::SharedArray2< Int8 >, Arcane::SharedArray2< Int8 >, Arcane::SharedArray2< Integer >, Arcane::SharedArray2< Integer >, Arcane::SharedArray2< Pointer >, Arcane::SharedArray2< Pointer >, Arcane::SharedArray2< Real >, Arcane::SharedArray2< Real >, Arcane::SharedArray2< Real2 >, Arcane::SharedArray2< Real2 >, Arcane::SharedArray2< Real2x2 >, Arcane::SharedArray2< Real2x2 >, Arcane::SharedArray2< Real3 >, Arcane::SharedArray2< Real3 >, Arcane::SharedArray2< Real3x3 >, Arcane::SharedArray2< Real3x3 >, Arcane::SharedArray2< String >, Arcane::SharedArray2< String >, Arcane::SharedArray2< UChar >, Arcane::SharedArray2< UChar >, Arcane::SharedArray< T >, Arcane::SharedArray< Arcane::ItemLocalId >, Arcane::SharedArray< BFloat16 >, Arcane::SharedArray< BFloat16 >, Arcane::SharedArray< bool >, Arcane::SharedArray< bool >, Arcane::SharedArray< Byte >, Arcane::SharedArray< Byte >, Arcane::SharedArray< DataType >, Arcane::SharedArray< EdgeTypeConstRef >, Arcane::SharedArray< EdgeTypeConstRef >, Arcane::SharedArray< EdgeTypeRef >, Arcane::SharedArray< EdgeTypeRef >, Arcane::SharedArray< Float16 >, Arcane::SharedArray< Float16 >, Arcane::SharedArray< Float32 >, Arcane::SharedArray< Float32 >, Arcane::SharedArray< Int16 >, Arcane::SharedArray< Int16 >, Arcane::SharedArray< Int32 >, Arcane::SharedArray< Int32 >, Arcane::SharedArray< Int64 >, Arcane::SharedArray< Int64 >, Arcane::SharedArray< Int8 >, Arcane::SharedArray< Int8 >, Arcane::SharedArray< Integer >, Arcane::SharedArray< Integer >, Arcane::SharedArray< Pointer >, Arcane::SharedArray< Pointer >, Arcane::SharedArray< Real >, Arcane::SharedArray< Real >, Arcane::SharedArray< Real2 >, Arcane::SharedArray< Real2 >, Arcane::SharedArray< Real2x2 >, Arcane::SharedArray< Real2x2 >, Arcane::SharedArray< Real3 >, Arcane::SharedArray< Real3 >, Arcane::SharedArray< Real3x3 >, Arcane::SharedArray< Real3x3 >, Arcane::SharedArray< String >, Arcane::SharedArray< String >, Arcane::SharedArray< UChar >, Arcane::SharedArray< UChar >, Arcane::SharedArray< VertexTypeConstRef >, Arcane::SharedArray< VertexTypeConstRef >, Arcane::SharedArray< VertexTypeRef >, Arcane::SharedArray< VertexTypeRef >, Arcane::SharedArray< XmlNode >, Arcane::SharedArray< XmlNode >, Arccore::SharedArray2< T >, and Arccore::SharedArray< T >.
Definition at line 92 of file AbstractArray.h.
|
inlinestaticconstexprprotected |
Explicit method for a null RunQueue.
Definition at line 84 of file AbstractArray.h.
Referenced by Arcane::AbstractArray< DataType >::_checkFreeMemory(), Arcane::AbstractArray< DataType >::_initFromSpan(), and Arcane::AbstractArray< DataType >::_move().
|
inlineprotected |
Definition at line 99 of file AbstractArray.h.
|
inline |
Definition at line 63 of file AbstractArray.h.
|
inline |
Definition at line 59 of file AbstractArray.h.
| String Arcane::AbstractArrayBase::debugName | ( | ) | const |
Debug name (null if no name specified).
Definition at line 330 of file arccore/src/common/arccore/common/Array.cc.
| void Arcane::AbstractArrayBase::setDebugName | ( | const String & | name | ) |
Sets the array name for debug information.
This name can be used, for example, for listing displays.
Definition at line 321 of file arccore/src/common/arccore/common/Array.cc.
|
protected |
Definition at line 78 of file AbstractArray.h.
|
protected |
Definition at line 79 of file AbstractArray.h.