12#ifndef ARCANE_CORE_INTERNAL_IDATAINTERNAL_H
13#define ARCANE_CORE_INTERNAL_IDATAINTERNAL_H
19#include "arcane/utils/UniqueArray.h"
20#include "arcane/utils/IHashAlgorithm.h"
41 Int64 m_original_dim1_size = 0;
42 Int64 m_original_dim2_size = 0;
63 Int32 version()
const {
return m_version; }
64 void setVersion(
Int32 v) { m_version = v; }
188template <
class DataType>
220template <
class DataType>
250namespace Arcane::impl
259extern "C++" ARCANE_CORE_EXPORT
void
260copyContiguousData(INumericDataInternal* destination, ConstMemoryView source, RunQueue& queue);
268extern "C++" ARCANE_CORE_EXPORT
void
269copyContiguousData(IData* destination, IData* source, RunQueue& queue);
271extern "C++" ARCANE_CORE_EXPORT
void
272fillContiguousDataGeneric(IData* data,
const void* fill_address,
273 Int32 datatype_size, RunQueue& queue);
275template <
typename DataType>
inline void
276fillContiguousData(IData* data,
const DataType& value, RunQueue& queue)
278 constexpr Int32 type_size =
static_cast<Int32
>(
sizeof(DataType));
279 fillContiguousDataGeneric(data, &value, type_size, queue);
Declarations of Arcane's general types.
Class representing a classic 2D array.
Base class for 1D data vectors.
Class to manage data compression/decompression.
Information for calculating data hash.
Interface for a two-dimensional array data of type T.
virtual Array2< DataType > & _internalDeprecatedValue()=0
Container associated with the data.
virtual void resize(Int32 new_dim1_size, Int32 new_dim2_size)=0
Resizes the container.
virtual void resizeOnlyDim1(Int32 new_dim1_size)=0
Resizes the container only in dimension 1.
virtual void shrink() const =0
Frees additional allocated memory.
virtual void reserve(Integer new_capacity)=0
Reserves memory for new_capacity elements.
Interface for an array data of type T.
virtual Integer capacity() const =0
Capacity allocated by the container.
virtual void reserve(Integer new_capacity)=0
Reserves memory for new_capacity elements.
virtual Array< DataType > & _internalDeprecatedValue()=0
Container associated with the data.
virtual void shrink() const =0
Frees additional allocated memory.
virtual void dispose()=0
Clears the container and frees allocated memory.
virtual void resize(Integer new_size)=0
Resizes the container.
Interface of a service for compressing/decompressing data.
virtual void computeHash(DataHashInfo &hash_info)=0
Calculates the hash of the data.
virtual bool decompressAndFill(DataCompressionBuffer &buf)
Decompresses the data and fills the data values.
virtual bool compressAndClear(DataCompressionBuffer &buf)
Compresses the data and frees the associated memory.
virtual INumericDataInternal * numericData()
Generic interface for numeric data (nullptr if the data is not numeric).
Context for calculating a hash incrementally.
Interface for a memory allocator.
Interface for an 'IData' of a numeric type.
virtual void changeAllocator(const MemoryAllocationOptions &alloc_info)=0
Changes the variable's allocator.
virtual Int32 extent0() const =0
Number of elements in the first dimension.
virtual IMemoryAllocator * memoryAllocator() const =0
Allocator used for the data.
virtual MutableMemoryView memoryView()=0
Memory view of the data.
Options to configure allocations.
Mutable view on a contiguous memory region containing fixed-size elements.
1D data vector with value semantics (STL style).
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --
std::int64_t Int64
Signed integer type of 64 bits.
Int32 Integer
Type representing an integer.
std::int32_t Int32
Signed integer type of 32 bits.