12#ifndef ARCCORE_SERIALIZE_BASICSERIALIZER_H
13#define ARCCORE_SERIALIZE_BASICSERIALIZER_H
17#include "arccore/serialize/ISerializer.h"
19#include "arccore/base/Float16.h"
20#include "arccore/base/BFloat16.h"
21#include "arccore/collections/Array.h"
35template <
class DataType>
41 , m_current_position(0)
48 Int64 cp = m_current_position;
52 DataType* ptr = m_buffer.
data() + cp;
53 const DataType* vptr = values.
data();
54 for (
Int64 i = 0; i < n; ++i)
56 m_current_position += n;
62 Int64 cp = m_current_position;
66 const DataType* ptr = m_buffer.
data() + cp;
67 DataType* vptr = values.
data();
68 for (
Int64 i = 0; i < n; ++i)
70 m_current_position += n;
74 Int64 m_reserved_size;
75 Int64 m_current_position;
90 using ISerializer::reserveSpan;
91 using ISerializer::putSpan;
122 using ISerializer::reserve;
127 void reserveInteger(
Int64 n)
override
130 reserve(DT_Int64, n);
132 reserve(DT_Int32, n);
135 void reserve(
const String& str)
override;
156 void put(
const String& value)
override;
276 void get(
String& values)
override;
341 void allocateBuffer()
override;
343 eMode mode()
const override;
344 void setMode(eMode new_mode)
override;
345 eReadMode readMode()
const override;
346 void setReadMode(eReadMode new_read_mode)
override;
361 void setSerializeTypeInfo(
bool v);
362 bool isSerializeTypeInfo()
const;
372 ARCCORE_DEPRECATED_2020(
"internal method")
374 ARCCORE_DEPRECATED_2020("internal method")
376 ARCCORE_DEPRECATED_2020("internal method")
378 ARCCORE_DEPRECATED_2020("internal method")
380 ARCCORE_DEPRECATED_2020("internal method")
387 Span<const
Byte> globalBuffer() const;
388 ARCCORE_DEPRECATED_2020("Do not use. get total size with totalSize()")
390 Int64 totalSize() const;
391 void preallocate(
Int64 size);
392 void releaseBuffer();
394 void printSizes(std::ostream& o) const;
396 friend inline std::ostream&
399 x.buf().printSizes(o);
411 void initFromBuffer(Span<const Byte> buf);
412 void copy(
const ISerializer* from)
override;
413 void copy(
const BasicSerializer& rhs);
Classe de base des vecteurs 1D de données.
Int64 getInt64() override
Récupère une taille.
void get(Int32ArrayView values) override
Récupère le tableau values.
void putFloat32(Float32 value) override
Ajoute value.
Float16 getFloat16() override
Récupère un Float16.
void get(ByteArrayView values) override
Récupère le tableau values.
Integer getInteger() override
Récupère une taille.
void get(Int16ArrayView values) override
Récupère le tableau values.
void put(Float16 value) override
Ajoute value.
Int8 getInt8() override
Récupère un Int8.
Byte getByte() override
Récupère un octet.
void putInt16(Int16 value) override
Ajoute l'entier value.
void put(Float32 value) override
Ajoute value.
Int32 getInt32() override
Récupère un entier naturel.
void putReal(Real value) override
Ajoute le réel value.
void putByte(Byte value) override
Ajoute l'octet value.
Real getReal() override
Récupère un réel.
void putInt64(Int64 value) override
Ajoute l'entier value.
void put(BFloat16 value) override
Ajoute value.
void putFloat16(Float16 value) override
Ajoute value.
static ARCCORE_CONSTEXPR Integer paddingSize()
Taille du padding et de l'alignement.
void put(Int8 value) override
Ajoute value.
Float32 getFloat32() override
Récupère un Float32.
void put(Byte value) override
Ajoute value.
void putInt32(Int32 value) override
Ajoute l'entier value.
void putInteger(Integer value) override
Ajoute l'entier value.
void get(Int64ArrayView values) override
Récupère le tableau values.
void putInt8(Int8 value) override
Ajoute value.
Int16 getInt16() override
Récupère un entier sur 16 bits.
void put(Int16 value) override
Ajoute value.
void putBFloat16(BFloat16 value) override
Ajoute value.
BFloat16 getBFloat16() override
Récupère un BFloat16.
void get(RealArrayView values) override
Récupère le tableau values.
void put(Int64 value) override
Ajoute value.
void put(Real value) override
Ajoute value.
void put(Int32 value) override
Ajoute value.
Type flottant demi-précision.
Interface d'un sérialiseur.
constexpr __host__ __device__ SizeType size() const noexcept
Retourne la taille du tableau.
constexpr __host__ __device__ pointer data() const noexcept
Pointeur sur le début de la vue.
Vue d'un tableau d'éléments de type T.
Chaîne de caractères unicode.
Espace de nom de Arccore.
double Real
Type représentant un réel.
Int32 Integer
Type représentant un entier.
__host__ __device__ void arccoreCheckAt(Int64 i, Int64 max_size)
Vérifie un éventuel débordement de tableau.
float Float32
Type flottant IEEE-753 simple précision.
std::int64_t Int64
Type entier signé sur 64 bits.
ConstArrayView< Int16 > Int16ConstArrayView
Equivalent C d'un tableau à une dimension d'entiers 16 bits.
std::int32_t Int32
Type entier signé sur 32 bits.
std::int8_t Int8
Type entier signé sur 8 bits.
std::int16_t Int16
Type entier signé sur 16 bits.
unsigned char Byte
Type d'un octet.