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/base/Float128.h"
22#include "arccore/base/Int128.h"
23#include "arccore/collections/Array.h"
37template <
class DataType>
43 , m_current_position(0)
50 Int64 cp = m_current_position;
54 DataType* ptr = m_buffer.
data() + cp;
55 const DataType* vptr = values.
data();
56 for (
Int64 i = 0; i < n; ++i)
58 m_current_position += n;
64 Int64 cp = m_current_position;
68 const DataType* ptr = m_buffer.
data() + cp;
69 DataType* vptr = values.
data();
70 for (
Int64 i = 0; i < n; ++i)
72 m_current_position += n;
76 Int64 m_reserved_size;
77 Int64 m_current_position;
92 using ISerializer::reserveSpan;
93 using ISerializer::putSpan;
124 using ISerializer::reserve;
131 void reserveInteger(
Int64 n)
override
134 reserve(DT_Int64, n);
136 reserve(DT_Int32, n);
139 void reserve(
const String& str)
override;
164 void put(
const String& value)
override;
306 void get(
String& values)
override;
383 void allocateBuffer()
override;
385 eMode mode()
const override;
386 void setMode(eMode new_mode)
override;
387 eReadMode readMode()
const override;
388 void setReadMode(eReadMode new_read_mode)
override;
403 void setSerializeTypeInfo(
bool v);
404 bool isSerializeTypeInfo()
const;
414 ARCCORE_DEPRECATED_2020(
"internal method")
416 ARCCORE_DEPRECATED_2020("internal method")
418 ARCCORE_DEPRECATED_2020("internal method")
420 ARCCORE_DEPRECATED_2020("internal method")
422 ARCCORE_DEPRECATED_2020("internal method")
429 Span<const
Byte> globalBuffer() const;
430 ARCCORE_DEPRECATED_2020("Do not use. get total size with totalSize()")
432 Int64 totalSize() const;
433 void preallocate(
Int64 size);
434 void releaseBuffer();
436 void printSizes(std::ostream& o) const;
438 friend inline std::ostream&
441 x.buf().printSizes(o);
453 void initFromBuffer(Span<const Byte> buf);
454 void copy(
const ISerializer* from)
override;
455 void copy(
const BasicSerializer& rhs);
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Classe de base des vecteurs 1D de données.
Tampon pour sérialiser un type de donnée DataType.
Implémentation basique de 'ISerializer'.
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.
Float128 getFloat128() override
Récupère un Float32.
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(Int128 value) override
Ajoute value.
void put(BFloat16 value) override
Ajoute value.
void putFloat16(Float16 value) override
Ajoute value.
Int128 getInt128() override
Récupère un Float32.
void putInt128(Int128 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 put(Float128 value) override
Ajoute 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 putFloat128(Float128 value) override
Ajoute value.
void put(Real value) override
Ajoute value.
void put(Int32 value) override
Ajoute value.
Type flottant sur 128 bits.
Type flottant demi-précision.
Interface d'un sérialiseur.
Type entier sur 128 bits.
constexpr ARCCORE_HOST_DEVICE pointer data() const noexcept
Pointeur sur le début de la vue.
constexpr ARCCORE_HOST_DEVICE SizeType size() const noexcept
Retourne la taille du tableau.
Vue d'un tableau d'éléments de type T.
Chaîne de caractères unicode.
Espace de nom de Arccore.
Int32 Integer
Type représentant un entier.
float Float32
Type flottant IEEE-753 simple précision.
ARCCORE_HOST_DEVICE void arccoreCheckAt(Int64 i, Int64 max_size)
Vérifie un éventuel débordement de tableau.
eBasicDataType
Type d'une donnée de base.
std::int64_t Int64
Type entier signé sur 64 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.