41class ARCCORE_COMMON_EXPORT ArrayMetaData
47 template <
typename>
friend class AbstractArray;
48 template <
typename>
friend class Array2;
49 template <
typename>
friend class Array;
50 template <
typename>
friend class SharedArray;
51 template <
typename>
friend class SharedArray2;
52 friend class AbstractArrayBase;
86 static void throwInvalidMetaDataForSharedArray ARCCORE_NORETURN();
87 static void throwNullExpected ARCCORE_NORETURN();
88 static void throwNotNullExpected ARCCORE_NORETURN();
89 static void throwUnsupportedSpecificAllocator ARCCORE_NORETURN();
90 static void overlapError ARCCORE_NORETURN(
const void* begin1,
Int64 size1,
91 const void* begin2,
Int64 size2);
95 using MemoryPointer =
void*;
96 using ConstMemoryPointer =
const void*;
106 _allocator()->deallocate(alloc_args, mem_info);
109 MemoryPointer _changeAllocator(
const MemoryAllocationOptions& new_allocator_opt,
const AllocatedMemoryInfo& current_info, Int64 sizeof_true_type, RunQueue* queue);
110 void _setMemoryLocationHint(eMemoryLocationHint new_hint,
void* ptr, Int64 sizeof_true_type);
111 void _setHostDeviceMemoryLocation(eHostDeviceMemoryLocation location);
112 void _copyFromMemory(MemoryPointer destination, ConstMemoryPointer source, Int64 sizeof_true_type, RunQueue* queue);
116 void _checkAllocator()
const;
117 MemoryAllocationArgs _getAllocationArgs()
const {
return allocation_options.
allocationArgs(); }
118 MemoryAllocationArgs _getAllocationArgs(RunQueue* queue)
const