Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
Référence de la classe Arcane::ISerializedDataabstract

Interface d'une donnée sérialisée. Plus de détails...

#include <arcane/core/ISerializedData.h>

+ Graphe d'héritage de Arcane::ISerializedData:
+ Graphe de collaboration de Arcane::ISerializedData:

Fonctions membres publiques

virtual ~ISerializedData ()=default
 Libère les ressources.
 
virtual eDataType baseDataType () const =0
 Type de la donnée.
 
virtual Integer nbDimension () const =0
 Dimension. 0 pour un scalaire, 1 pour un tableau mono-dim, ...
 
virtual Int64 nbElement () const =0
 Nombre d'éléments.
 
virtual Int64 nbBaseElement () const =0
 Nombre d'éléments du type de base.
 
virtual bool isMultiSize () const =0
 Indique s'il s'agit d'un tableau multi-taille. (pertinent uniquement si nbDimension()>1)
 
virtual Int64 memorySize () const =0
 Indique le nombre d'octets qu'il faut allouer pour stocker ou lire les données.
 
virtual Int64ConstArrayView extents () const =0
 Tableau contenant le nombre d'éléments pour chaque dimension.
 
virtual ArrayShape shape () const =0
 Forme du tableau associé aux données.
 
virtual Span< const ByteconstBytes () const =0
 Valeurs sérialisées.
 
virtual Span< BytewritableBytes ()=0
 Vue sur les valeurs sérialisées.
 
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 allocateMemory (Int64 size)=0
 Alloue un tableaux pour contenir les éléments sérialisés.
 
virtual void serialize (ISerializer *buffer)=0
 Serialize en lecture ou écriture la donnée.
 
virtual void serialize (ISerializer *buffer) const =0
 Serialize en lecture la donnée.
 
virtual void computeHash (IHashAlgorithm *algo, ByteArray &output) const =0
 Calcul une clé de hashage sur cette donnée.
 
 ARCANE_DEPRECATED_2018_R ("Use method 'writableBytes()' or 'constBytes()' instead") virtual ByteConstArrayView buffer() const =0
 Valeurs sérialisées.
 
 ARCANE_DEPRECATED_2018_R ("Use method 'writableBytes()' or 'constBytes()' instead") virtual ByteArrayView buffer()=0
 Valeurs sérialisées.
 
 ARCCORE_DEPRECATED_2021 ("Use method 'writableBytes()' or 'constBytes()' instead") virtual Span< const Byte > bytes() const =0
 Valeurs sérialisées.
 
virtual void setBuffer (ByteArrayView buffer)=0
 Positionne les valeurs de sérialisation.
 
virtual void setBuffer (ByteConstArrayView buffer)=0
 Positionne les valeurs de sérialisation.
 
virtual void setBytes (Span< Byte > bytes)=0
 Positionne les valeurs de sérialisation.
 
virtual void setBytes (Span< const Byte > bytes)=0
 Positionne les valeurs de sérialisation.
 
 ARCCORE_DEPRECATED_2021 ("Use method 'writableBytes()' or 'constBytes()' instead") virtual Span< Byte > bytes()=0
 Valeurs sérialisées.
 

Fonctions membres privées

 ARCCORE_DECLARE_REFERENCE_COUNTED_INCLASS_METHODS ()
 

Description détaillée

Interface d'une donnée sérialisée.

Une donnée (IData) est sérialisée en une instance de cette classe.

Quel que soit le type de la donnée, le type sérialisé est obligatoirement un type de base parmi les suivants: DT_Byte, DT_Int16, DT_Int32, DT_Int64, DT_Real.

Une instance de cette classe n'est valable que tant que la donnée de référence n'est pas modifiée.

Pour sérialiser une donnée data en écriture:

IData* data = ...;
ISerializedData* sdata = data->createSerializedData();
// sdata->constBytes() contient la donnée sérialisée.
Span<const Byte> buf(sdata->constBytes());
std::cout.write(reinterpret_cast<const char*>(buf.data()),buf.size());
Interface d'une donnée.
Definition IData.h:33
Interface d'une donnée sérialisée.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:120

Pour sérialiser une donnée data en lecture:

IData* data = ...
// Créé une instance d'un ISerializedData.
// Remplit sdata->writableBytes() à partir de votre source
Span<Byte> buf(sdata->writableBytes());
std::cin.read(reinterpret_cast<char*>(buf.data()),buf.size());
// Assigne la valeur à \a data
virtual void allocateBufferForSerializedData(ISerializedData *sdata)=0
Alloue la mémoire pour lire les valeurs sérialisées sdata.
virtual void assignSerializedData(const ISerializedData *sdata)=0
Assigne à la donnée les valeurs sérialisées sdata.
Ref< ISerializedData > arcaneCreateSerializedDataRef(eDataType data_type, Int64 memory_size, Integer nb_dim, Int64 nb_element, Int64 nb_base_element, bool is_multi_size, Int64ConstArrayView dimensions)
Créé des données sérialisées.

Définition à la ligne 61 du fichier ISerializedData.h.

Documentation des fonctions membres

◆ allocateMemory()

virtual void Arcane::ISerializedData::allocateMemory ( Int64  size)
pure virtual

Alloue un tableaux pour contenir les éléments sérialisés.

Après appel à cette méthode, il est possible de récupérer une vue sur les valeurs sérialisées via writableBytes() ou constBytes().

Implémenté dans Arcane::SerializedData.

◆ ARCANE_DEPRECATED_2018_R() [1/2]

Arcane::ISerializedData::ARCANE_DEPRECATED_2018_R ( "Use method 'writableBytes()' or 'constBytes()' instead"  )
pure virtual

Valeurs sérialisées.

Obsolète:
Utiliser bytes() à la place.

◆ ARCANE_DEPRECATED_2018_R() [2/2]

Arcane::ISerializedData::ARCANE_DEPRECATED_2018_R ( "Use method 'writableBytes()' or 'constBytes()' instead"  ) const
pure virtual

Valeurs sérialisées.

Obsolète:
Utiliser bytes() à la place.

◆ ARCCORE_DEPRECATED_2021()

Arcane::ISerializedData::ARCCORE_DEPRECATED_2021 ( "Use method 'writableBytes()' or 'constBytes()' instead"  )
pure virtual

Valeurs sérialisées.

Avertissement
Cette méthode renvoie une vue non vide uniquement si on a appelé setBytes(Span<Byte>) ou allocateMemory().

◆ baseDataType()

virtual eDataType Arcane::ISerializedData::baseDataType ( ) const
pure virtual

Type de la donnée.

Implémenté dans Arcane::SerializedData.

◆ computeHash()

virtual void Arcane::ISerializedData::computeHash ( IHashAlgorithm algo,
ByteArray output 
) const
pure virtual

Calcul une clé de hashage sur cette donnée.

La clé est ajoutée dans output. La longueur de la clé dépend de l'algorithme utilisé.

Implémenté dans Arcane::SerializedData.

◆ constBytes()

virtual Span< const Byte > Arcane::ISerializedData::constBytes ( ) const
pure virtual

Valeurs sérialisées.

Implémenté dans Arcane::SerializedData.

◆ extents()

virtual Int64ConstArrayView Arcane::ISerializedData::extents ( ) const
pure virtual

Tableau contenant le nombre d'éléments pour chaque dimension.

Implémenté dans Arcane::SerializedData.

◆ isMultiSize()

virtual bool Arcane::ISerializedData::isMultiSize ( ) const
pure virtual

Indique s'il s'agit d'un tableau multi-taille. (pertinent uniquement si nbDimension()>1)

Implémenté dans Arcane::SerializedData.

◆ memorySize()

virtual Int64 Arcane::ISerializedData::memorySize ( ) const
pure virtual

Indique le nombre d'octets qu'il faut allouer pour stocker ou lire les données.

Implémenté dans Arcane::SerializedData.

◆ nbBaseElement()

virtual Int64 Arcane::ISerializedData::nbBaseElement ( ) const
pure virtual

Nombre d'éléments du type de base.

Implémenté dans Arcane::SerializedData.

◆ nbDimension()

virtual Integer Arcane::ISerializedData::nbDimension ( ) const
pure virtual

Dimension. 0 pour un scalaire, 1 pour un tableau mono-dim, ...

Implémenté dans Arcane::SerializedData.

◆ nbElement()

virtual Int64 Arcane::ISerializedData::nbElement ( ) const
pure virtual

Nombre d'éléments.

Implémenté dans Arcane::SerializedData.

◆ serialize() [1/2]

virtual void Arcane::ISerializedData::serialize ( ISerializer buffer) const
pure virtual

Serialize en lecture la donnée.

Implémenté dans Arcane::SerializedData.

◆ serialize() [2/2]

virtual void Arcane::ISerializedData::serialize ( ISerializer buffer)
pure virtual

Serialize en lecture ou écriture la donnée.

Implémenté dans Arcane::SerializedData.

◆ setBuffer() [1/2]

virtual void Arcane::ISerializedData::setBuffer ( ByteArrayView  buffer)
pure virtual

Positionne les valeurs de sérialisation.

Le tableau buffer ne doit pas être modifié tant que cette instance est utilisée.

Obsolète:
Utiliser setBytes() à la place.

Implémenté dans Arcane::SerializedData.

◆ setBuffer() [2/2]

virtual void Arcane::ISerializedData::setBuffer ( ByteConstArrayView  buffer)
pure virtual

Positionne les valeurs de sérialisation.

Le tableau buffer ne doit pas être modifié tant que cette instance est utilisée.

Obsolète:
Utiliser setBytes() à la place.

Implémenté dans Arcane::SerializedData.

◆ setBytes() [1/2]

virtual void Arcane::ISerializedData::setBytes ( Span< Byte bytes)
pure virtual

Positionne les valeurs de sérialisation.

Le tableau bytes ne doit pas être modifié tant que cette instance est utilisée.

Implémenté dans Arcane::SerializedData, et Arcane::SerializedData.

◆ setBytes() [2/2]

virtual void Arcane::ISerializedData::setBytes ( Span< const Byte bytes)
pure virtual

Positionne les valeurs de sérialisation.

Le tableau bytes ne doit pas être modifié tant que cette instance est utilisée.

Implémenté dans Arcane::SerializedData, et Arcane::SerializedData.

◆ setConstBytes()

virtual void Arcane::ISerializedData::setConstBytes ( Span< const Byte bytes)
pure virtual

Positionne les valeurs de sérialisation pour la lecture.

La vue bytes doit rester valide tant que cette instance est utilisée.

Implémenté dans Arcane::SerializedData.

◆ setWritableBytes()

virtual void Arcane::ISerializedData::setWritableBytes ( Span< Byte bytes)
pure virtual

Positionne les valeurs de sérialisation.

La vue bytes doit rester valide tant que cette instance est utilisée.

Implémenté dans Arcane::SerializedData.

◆ shape()

virtual ArrayShape Arcane::ISerializedData::shape ( ) const
pure virtual

Forme du tableau associé aux données.

Implémenté dans Arcane::SerializedData.

◆ writableBytes()

virtual Span< Byte > Arcane::ISerializedData::writableBytes ( )
pure virtual

Vue sur les valeurs sérialisées.

Avertissement
Cette méthode renvoie une vue non vide uniquement si on a appelé allocateMemory() ou setWritableBytes(Span<Byte>) avant.

Implémenté dans Arcane::SerializedData.


La documentation de cette classe a été générée à partir du fichier suivant :