Arcane  4.1.12.0
Developer documentation
Loading...
Searching...
No Matches
Arcane::SerializedData Class Reference

Interface for serialized data. More...

Inheritance diagram for Arcane::SerializedData:
Collaboration diagram for Arcane::SerializedData:

Public Member Functions

 SerializedData (eDataType base_data_type, Int64 memory_size, Integer nb_dimension, Int64 nb_element, Int64 nb_base_element, bool is_multi_size, Int64ConstArrayView extents, const ArrayShape &shape)
eDataType baseDataType () const override
 Data type.
Integer nbDimension () const override
 Dimension. 0 for a scalar, 1 for a 1D array, ...
Int64 nbElement () const override
 Number of elements.
bool isMultiSize () const override
 Indicates if it is a multi-size array. (only relevant if nbDimension()>1).
Int64 memorySize () const override
 Indicates the number of bytes that must be allocated to store or read the data.
Int64ConstArrayView extents () const override
 Array containing the number of elements for each dimension.
ArrayShape shape () const override
 Shape of the array associated with the data.
Int64 nbBaseElement () const override
 Number of base elements.
ByteConstArrayView buffer () const override
ByteArrayView buffer () override
Span< const Bytebytes () const override
 Serialized values.
Span< const ByteconstBytes () const override
 Serialized values.
Span< Bytebytes () override
 Serialized values.
void setBuffer (ByteArrayView buffer) override
 Positions the serialized values.
void setBuffer (ByteConstArrayView buffer) override
 Positions the serialized values.
void setBytes (Span< Byte > bytes) override
 Positions the serialized values.
void setBytes (Span< const Byte > bytes) override
 Positions the serialized values.
Span< BytewritableBytes () override
 View of the serialized values.
void setWritableBytes (Span< Byte > bytes) override
 Positions the serialized values.
void setConstBytes (Span< const Byte > bytes) override
 Positions the serialized values for reading.
void allocateMemory (Int64 size) override
 Allocates an array to hold the serialized elements.
void serialize (ISerializer *buffer) override
 Serialize the data for reading or writing.
void serialize (ISerializer *buffer) const override
void computeHash (IHashAlgorithm *algo, ByteArray &output) const override
 Compute a hash key on this data.
Public Member Functions inherited from Arcane::ReferenceCounterImpl
void addReference ()
void removeReference ()
void _internalAddReference ()
bool _internalRemoveReference ()
Public Member Functions inherited from Arcane::ISerializedData
virtual ~ISerializedData ()=default
 Frees resources.
 ARCANE_DEPRECATED_2018_R ("Use method 'writableBytes()' or 'constBytes()' instead") virtual ByteConstArrayView buffer() const =0
 Serialized values.
 ARCANE_DEPRECATED_2018_R ("Use method 'writableBytes()' or 'constBytes()' instead") virtual ByteArrayView buffer()=0
 Serialized values.

Private Member Functions

 ARCCORE_DEFINE_REFERENCE_COUNTED_INCLASS_METHODS ()
void _serialize (ISerializer *sbuf) const
void _serializeRead (ISerializer *sbuf)
void _copyExtentsToDimensions ()

Private Attributes

eDataType m_base_data_type
Int64 m_memory_size
Integer m_nb_dimension
Int64 m_nb_element
Int64 m_nb_base_element
bool m_is_multi_size
UniqueArray< Int32m_dimensions
UniqueArray< Int64m_extents
Int64 m_element_size
Span< Bytem_buffer
Span< const Bytem_const_buffer
UniqueArray< Bytem_stored_buffer
ArrayShape m_shape

Detailed Description

Interface for serialized data.

Definition at line 47 of file SerializedData.cc.

Constructor & Destructor Documentation

◆ SerializedData() [1/2]

Arcane::SerializedData::SerializedData ( )

Definition at line 122 of file SerializedData.cc.

◆ SerializedData() [2/2]

Arcane::SerializedData::SerializedData ( eDataType base_data_type,
Int64 memory_size,
Integer nb_dimension,
Int64 nb_element,
Int64 nb_base_element,
bool is_multi_size,
Int64ConstArrayView extents,
const ArrayShape & shape )

Definition at line 137 of file SerializedData.cc.

Member Function Documentation

◆ _copyExtentsToDimensions()

void Arcane::SerializedData::_copyExtentsToDimensions ( )
private

Definition at line 168 of file SerializedData.cc.

◆ _serialize()

void Arcane::SerializedData::_serialize ( ISerializer * sbuf) const
private
Todo
Do not use the DT_Byte type for serialization, but the true base type: this type can be used with MPI, and in this case, if the machines are heterogeneous, the type information is lost and the put operation may not match.

Definition at line 342 of file SerializedData.cc.

References ARCANE_FATAL, ARCANE_THROW, Arcane::Byte, Arcane::Int32, Arcane::Int64, Arcane::ISerializer::mode(), Arcane::ISerializer::ModeGet, Arcane::ISerializer::ModePut, Arcane::ISerializer::putInt32(), Arcane::ISerializer::putInt64(), Arcane::ISerializer::putInteger(), Arcane::ISerializer::putSpan(), Arcane::ISerializer::reserveInt32(), Arcane::ISerializer::reserveInt64(), and Arcane::ISerializer::reserveSpan().

Referenced by serialize(), and serialize().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ _serializeRead()

void Arcane::SerializedData::_serializeRead ( ISerializer * sbuf)
private

Definition at line 295 of file SerializedData.cc.

◆ allocateMemory()

void Arcane::SerializedData::allocateMemory ( Int64 size)
overridevirtual

Allocates an array to hold the serialized elements.

After calling this method, it is possible to retrieve a view of the serialized values via writableBytes() or constBytes().

Implements Arcane::ISerializedData.

Definition at line 227 of file SerializedData.cc.

◆ baseDataType()

eDataType Arcane::SerializedData::baseDataType ( ) const
inlineoverridevirtual

Data type.

Implements Arcane::ISerializedData.

Definition at line 62 of file SerializedData.cc.

◆ buffer() [1/2]

ByteConstArrayView Arcane::SerializedData::buffer ( ) const
inlineoverride

Definition at line 70 of file SerializedData.cc.

◆ buffer() [2/2]

ByteArrayView Arcane::SerializedData::buffer ( )
inlineoverride

Definition at line 71 of file SerializedData.cc.

◆ bytes() [1/2]

Span< const Byte > Arcane::SerializedData::bytes ( ) const
inlineoverridevirtual

Serialized values.

Implements Arcane::ISerializedData.

Definition at line 72 of file SerializedData.cc.

Referenced by setBytes(), and setBytes().

Here is the caller graph for this function:

◆ bytes() [2/2]

Span< Byte > Arcane::SerializedData::bytes ( )
inlineoverridevirtual

Serialized values.

Warning
This method returns a non-empty view only if one has called setBytes(Span<Byte>) or allocateMemory().

Implements Arcane::ISerializedData.

Definition at line 74 of file SerializedData.cc.

◆ computeHash()

void Arcane::SerializedData::computeHash ( IHashAlgorithm * algo,
ByteArray & output ) const
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::ISerializedData.

Definition at line 239 of file SerializedData.cc.

References Arcane::IHashAlgorithm::computeHash64().

Here is the call graph for this function:

◆ constBytes()

Span< const Byte > Arcane::SerializedData::constBytes ( ) const
inlineoverridevirtual

Serialized values.

Implements Arcane::ISerializedData.

Definition at line 73 of file SerializedData.cc.

◆ extents()

Int64ConstArrayView Arcane::SerializedData::extents ( ) const
inlineoverridevirtual

Array containing the number of elements for each dimension.

Implements Arcane::ISerializedData.

Definition at line 67 of file SerializedData.cc.

◆ isMultiSize()

bool Arcane::SerializedData::isMultiSize ( ) const
inlineoverridevirtual

Indicates if it is a multi-size array. (only relevant if nbDimension()>1).

Implements Arcane::ISerializedData.

Definition at line 65 of file SerializedData.cc.

◆ memorySize()

Int64 Arcane::SerializedData::memorySize ( ) const
inlineoverridevirtual

Indicates the number of bytes that must be allocated to store or read the data.

Implements Arcane::ISerializedData.

Definition at line 66 of file SerializedData.cc.

◆ nbBaseElement()

Int64 Arcane::SerializedData::nbBaseElement ( ) const
inlineoverridevirtual

Number of base elements.

Implements Arcane::ISerializedData.

Definition at line 69 of file SerializedData.cc.

◆ nbDimension()

Integer Arcane::SerializedData::nbDimension ( ) const
inlineoverridevirtual

Dimension. 0 for a scalar, 1 for a 1D array, ...

Implements Arcane::ISerializedData.

Definition at line 63 of file SerializedData.cc.

◆ nbElement()

Int64 Arcane::SerializedData::nbElement ( ) const
inlineoverridevirtual

Number of elements.

Implements Arcane::ISerializedData.

Definition at line 64 of file SerializedData.cc.

◆ serialize() [1/2]

void Arcane::SerializedData::serialize ( ISerializer * sbuf) const
overridevirtual
Todo
Do not use the DT_Byte type for serialization, but * the true base type: this type can be used with MPI, and in this * case, if the machines are heterogeneous, the type information is lost * and the put operation may not match.

Implements Arcane::ISerializedData.

Definition at line 258 of file SerializedData.cc.

References _serialize().

Here is the call graph for this function:

◆ serialize() [2/2]

void Arcane::SerializedData::serialize ( ISerializer * buffer)
overridevirtual

Serialize the data for reading or writing.

Implements Arcane::ISerializedData.

Definition at line 267 of file SerializedData.cc.

References _serialize(), ARCANE_THROW, Arcane::ISerializer::mode(), Arcane::ISerializer::ModeGet, Arcane::ISerializer::ModePut, Arcane::ISerializer::ReadAdd, Arcane::ISerializer::readMode(), and Arcane::ISerializer::ReadReplace.

Here is the call graph for this function:

◆ setBuffer() [1/2]

void Arcane::SerializedData::setBuffer ( ByteArrayView buffer)
overridevirtual

Positions the serialized values.

The array buffer must not be modified as long as this instance is used.

Deprecated
Use setBytes() instead.

Implements Arcane::ISerializedData.

Definition at line 185 of file SerializedData.cc.

References setBytes().

Here is the call graph for this function:

◆ setBuffer() [2/2]

void Arcane::SerializedData::setBuffer ( ByteConstArrayView buffer)
overridevirtual

Positions the serialized values.

The array buffer must not be modified as long as this instance is used.

Deprecated
Use setBytes() instead.

Implements Arcane::ISerializedData.

Definition at line 194 of file SerializedData.cc.

References setBytes().

Here is the call graph for this function:

◆ setBytes() [1/2]

void Arcane::SerializedData::setBytes ( Span< Byte > bytes)
inlineoverridevirtual

Positions the serialized values.

The array bytes must not be modified as long as this instance is used.

Implements Arcane::ISerializedData.

Definition at line 77 of file SerializedData.cc.

References bytes(), and setWritableBytes().

Referenced by setBuffer(), and setBuffer().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setBytes() [2/2]

void Arcane::SerializedData::setBytes ( Span< const Byte > bytes)
inlineoverridevirtual

Positions the serialized values.

The array bytes must not be modified as long as this instance is used.

Implements Arcane::ISerializedData.

Definition at line 78 of file SerializedData.cc.

References bytes(), and setConstBytes().

Here is the call graph for this function:

◆ setConstBytes()

void Arcane::SerializedData::setConstBytes ( Span< const Byte > bytes)
overridevirtual

Positions the serialized values for reading.

The view bytes must remain valid as long as this instance is used.

Implements Arcane::ISerializedData.

Definition at line 215 of file SerializedData.cc.

Referenced by setBytes().

Here is the caller graph for this function:

◆ setWritableBytes()

void Arcane::SerializedData::setWritableBytes ( Span< Byte > bytes)
overridevirtual

Positions the serialized values.

The view bytes must remain valid as long as this instance is used.

Implements Arcane::ISerializedData.

Definition at line 203 of file SerializedData.cc.

Referenced by setBytes().

Here is the caller graph for this function:

◆ shape()

ArrayShape Arcane::SerializedData::shape ( ) const
inlineoverridevirtual

Shape of the array associated with the data.

Implements Arcane::ISerializedData.

Definition at line 68 of file SerializedData.cc.

◆ writableBytes()

Span< Byte > Arcane::SerializedData::writableBytes ( )
inlineoverridevirtual

View of the serialized values.

Warning
This method returns a non-empty view only if one has called allocateMemory() or setWritableBytes(Span<Byte>) beforehand.

Implements Arcane::ISerializedData.

Definition at line 79 of file SerializedData.cc.

Member Data Documentation

◆ m_base_data_type

eDataType Arcane::SerializedData::m_base_data_type
private

Definition at line 95 of file SerializedData.cc.

◆ m_buffer

Span<Byte> Arcane::SerializedData::m_buffer
private

Definition at line 107 of file SerializedData.cc.

◆ m_const_buffer

Span<const Byte> Arcane::SerializedData::m_const_buffer
private

Definition at line 108 of file SerializedData.cc.

◆ m_dimensions

UniqueArray<Int32> Arcane::SerializedData::m_dimensions
private

Definition at line 104 of file SerializedData.cc.

◆ m_element_size

Int64 Arcane::SerializedData::m_element_size
private

Definition at line 106 of file SerializedData.cc.

◆ m_extents

UniqueArray<Int64> Arcane::SerializedData::m_extents
private

Definition at line 105 of file SerializedData.cc.

◆ m_is_multi_size

bool Arcane::SerializedData::m_is_multi_size
private

Definition at line 100 of file SerializedData.cc.

◆ m_memory_size

Int64 Arcane::SerializedData::m_memory_size
private

Definition at line 96 of file SerializedData.cc.

◆ m_nb_base_element

Int64 Arcane::SerializedData::m_nb_base_element
private

Definition at line 99 of file SerializedData.cc.

◆ m_nb_dimension

Integer Arcane::SerializedData::m_nb_dimension
private

Definition at line 97 of file SerializedData.cc.

◆ m_nb_element

Int64 Arcane::SerializedData::m_nb_element
private

Definition at line 98 of file SerializedData.cc.

◆ m_shape

ArrayShape Arcane::SerializedData::m_shape
private

Definition at line 110 of file SerializedData.cc.

◆ m_stored_buffer

UniqueArray<Byte> Arcane::SerializedData::m_stored_buffer
private

Definition at line 109 of file SerializedData.cc.


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