Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
ISerializedData.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2022 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
4// See the top-level COPYRIGHT file for details.
5// SPDX-License-Identifier: Apache-2.0
6//-----------------------------------------------------------------------------
7/*---------------------------------------------------------------------------*/
8/* ISerializedData.h (C) 2000-2022 */
9/* */
10/* Interface d'une donnée sérialisée. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_ISERIALIZEDDATA_H
13#define ARCANE_ISERIALIZEDDATA_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/ArcaneTypes.h"
18
19/*---------------------------------------------------------------------------*/
20/*---------------------------------------------------------------------------*/
21
22namespace Arcane
23{
24
25/*---------------------------------------------------------------------------*/
26/*---------------------------------------------------------------------------*/
61class ARCANE_CORE_EXPORT ISerializedData
62{
64
65 public:
66
68 virtual ~ISerializedData() = default;
69
70 public:
71
73 virtual eDataType baseDataType() const = 0;
74
76 virtual Integer nbDimension() const = 0;
77
79 virtual Int64 nbElement() const = 0;
80
82 virtual Int64 nbBaseElement() const = 0;
83
85 virtual bool isMultiSize() const = 0;
86
88 virtual Int64 memorySize() const = 0;
89
91 virtual Int64ConstArrayView extents() const = 0;
92
94 virtual ArrayShape shape() const = 0;
95
97 virtual Span<const Byte> constBytes() const = 0;
98
106
112 virtual void setWritableBytes(Span<Byte> bytes) = 0;
113
119 virtual void setConstBytes(Span<const Byte> bytes) = 0;
120
127 virtual void allocateMemory(Int64 size) = 0;
128
129 public:
130
134 virtual void serialize(ISerializer* buffer) = 0;
135
139 virtual void serialize(ISerializer* buffer) const = 0;
140
141 public:
142
149 virtual void computeHash(IHashAlgorithm* algo, ByteArray& output) const = 0;
150
151 public:
152
157 ARCANE_DEPRECATED_2018_R("Use method 'writableBytes()' or 'constBytes()' instead")
158 virtual ByteConstArrayView buffer() const = 0;
159
164 ARCANE_DEPRECATED_2018_R("Use method 'writableBytes()' or 'constBytes()' instead")
165 virtual ByteArrayView buffer() = 0;
166
168 ARCCORE_DEPRECATED_2021("Use method 'writableBytes()' or 'constBytes()' instead")
169 virtual Span<const Byte> bytes() const = 0;
170
178 ARCCORE_DEPRECATED_2021("Use method 'setWritableBytes()' instead")
179 virtual void setBuffer(ByteArrayView buffer) = 0;
180
188 ARCCORE_DEPRECATED_2021("Use method 'setConstBytes()' instead")
189 virtual void setBuffer(ByteConstArrayView buffer) = 0;
190
197 ARCCORE_DEPRECATED_2021("Use method 'setWritableBytes()' instead")
198 virtual void setBytes(Span<Byte> bytes) = 0;
199
206 ARCCORE_DEPRECATED_2021("Use method 'setConstBytes()' instead")
207 virtual void setBytes(Span<const Byte> bytes) = 0;
208
215 ARCCORE_DEPRECATED_2021("Use method 'writableBytes()' or 'constBytes()' instead")
216 virtual Span<Byte> bytes() = 0;
217};
218
219/*---------------------------------------------------------------------------*/
220/*---------------------------------------------------------------------------*/
230extern "C++" ARCANE_CORE_EXPORT
232arcaneCreateSerializedDataRef(eDataType data_type, Int64 memory_size,
233 Integer nb_dim, Int64 nb_element, Int64 nb_base_element,
234 bool is_multi_size, Int64ConstArrayView dimensions);
235
236/*---------------------------------------------------------------------------*/
237/*---------------------------------------------------------------------------*/
247extern "C++" ARCANE_CORE_EXPORT
249arcaneCreateSerializedDataRef(eDataType data_type, Int64 memory_size,
250 Integer nb_dim, Int64 nb_element, Int64 nb_base_element,
251 bool is_multi_size, Int64ConstArrayView dimensions,
252 const ArrayShape& shape);
253
254/*---------------------------------------------------------------------------*/
255/*---------------------------------------------------------------------------*/
262extern "C++" ARCANE_CORE_EXPORT
264arcaneCreateEmptySerializedDataRef();
265
266/*---------------------------------------------------------------------------*/
267/*---------------------------------------------------------------------------*/
268
269} // End namespace Arcane
270
271/*---------------------------------------------------------------------------*/
272/*---------------------------------------------------------------------------*/
273
274#endif
275
#define ARCCORE_DECLARE_REFERENCE_COUNTED_INCLASS_METHODS()
Macro pour déclarer les méthodes virtuelles gérant les compteurs de référence.
Forme d'un tableau.
Definition ArrayShape.h:40
Tableau d'items de types quelconques.
Interface d'un algorithme de hashage.
Interface d'une donnée sérialisée.
virtual eDataType baseDataType() const =0
Type de la donnée.
virtual ArrayShape shape() const =0
Forme du tableau associé aux données.
virtual Integer nbDimension() const =0
Dimension. 0 pour un scalaire, 1 pour un tableau mono-dim, ...
virtual Int64 memorySize() const =0
Indique le nombre d'octets qu'il faut allouer pour stocker ou lire les données.
virtual void allocateMemory(Int64 size)=0
Alloue un tableaux pour contenir les éléments sérialisés.
virtual void setWritableBytes(Span< Byte > bytes)=0
Positionne les valeurs de sérialisation.
virtual void setConstBytes(Span< const Byte > bytes)=0
Positionne les valeurs de sérialisation pour la lecture.
virtual void serialize(ISerializer *buffer) const =0
Serialize en lecture la donnée.
virtual void serialize(ISerializer *buffer)=0
Serialize en lecture ou écriture la donnée.
ARCANE_DEPRECATED_2018_R("Use method 'writableBytes()' or 'constBytes()' instead") virtual ByteConstArrayView buffer() const =0
Valeurs sérialisées.
virtual void computeHash(IHashAlgorithm *algo, ByteArray &output) const =0
Calcul une clé de hashage sur cette donnée.
virtual Span< Byte > writableBytes()=0
Vue sur les valeurs sérialisées.
virtual ~ISerializedData()=default
Libère les ressources.
virtual Int64 nbBaseElement() const =0
Nombre d'éléments du type de base.
virtual Int64ConstArrayView extents() const =0
Tableau contenant le nombre d'éléments pour chaque dimension.
virtual Int64 nbElement() const =0
Nombre d'éléments.
virtual Span< const Byte > constBytes() const =0
Valeurs sérialisées.
virtual bool isMultiSize() const =0
Indique s'il s'agit d'un tableau multi-taille. (pertinent uniquement si nbDimension()>1)
Vue typée sur une liste d'entités d'une connectivité.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:120
Vue modifiable d'un tableau d'un type T.
Vue constante d'un tableau de type T.
Référence à une instance.
Vue d'un tableau d'éléments de type T.
Definition Span.h:510
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
eDataType
Type d'une donnée.
Definition DataTypes.h:39