Arcane  4.1.12.0
User documentation
Loading...
Searching...
No Matches
Arcane::AbstractArrayBase Class Reference

Internal base class for arrays. More...

#include <arccore/common/AbstractArray.h>

Public Member Functions

IMemoryAllocatorallocator () 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

ArrayMetaDatam_md = nullptr
ArrayMetaData m_meta_data

Detailed Description

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.

Constructor & Destructor Documentation

◆ AbstractArrayBase()

Arcane::AbstractArrayBase::AbstractArrayBase ( )
inline

Definition at line 51 of file AbstractArray.h.

Member Function Documentation

◆ _allocateMetaData()

void Arcane::AbstractArrayBase::_allocateMetaData ( )
inlineprotected

Definition at line 116 of file AbstractArray.h.

◆ _checkValidSharedArray()

void Arcane::AbstractArrayBase::_checkValidSharedArray ( )
inlineprotected

Definition at line 141 of file AbstractArray.h.

◆ _copyMetaData()

void Arcane::AbstractArrayBase::_copyMetaData ( const AbstractArrayBase & rhs)
inlineprotected

Definition at line 107 of file AbstractArray.h.

◆ _deallocateMetaData()

void Arcane::AbstractArrayBase::_deallocateMetaData ( ArrayMetaData * md)
inlineprotected

Definition at line 133 of file AbstractArray.h.

◆ _isUseOwnMetaData()

virtual bool Arcane::AbstractArrayBase::_isUseOwnMetaData ( ) const
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.

◆ _nullRunQueue()

constexpr RunQueue * Arcane::AbstractArrayBase::_nullRunQueue ( )
inlinestaticconstexprprotected

◆ _swapMetaData()

void Arcane::AbstractArrayBase::_swapMetaData ( AbstractArrayBase & rhs)
inlineprotected

Definition at line 99 of file AbstractArray.h.

◆ allocationOptions()

MemoryAllocationOptions Arcane::AbstractArrayBase::allocationOptions ( ) const
inline

Definition at line 63 of file AbstractArray.h.

◆ allocator()

IMemoryAllocator * Arcane::AbstractArrayBase::allocator ( ) const
inline

Definition at line 59 of file AbstractArray.h.

◆ debugName()

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.

◆ setDebugName()

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.

Member Data Documentation

◆ m_md

ArrayMetaData* Arcane::AbstractArrayBase::m_md = nullptr
protected

Definition at line 78 of file AbstractArray.h.

◆ m_meta_data

ArrayMetaData Arcane::AbstractArrayBase::m_meta_data
protected

Definition at line 79 of file AbstractArray.h.


The documentation for this class was generated from the following files: