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

Interface d'une étape de la sérialisation des familles d'entités. Plus de détails...

#include <arcane/core/IItemFamilySerializeStep.h>

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

Classes

class  NotifyActionArgs
 

Types publics

enum  ePhase { PH_Item , PH_Group , PH_Variable }
 Phase de la sérialisation. Plus de détails...
 
enum class  eAction { AC_BeginPrepareSend , AC_EndPrepareSend , AC_BeginReceive , AC_EndReceive }
 Action en cours de la sérialisation. Plus de détails...
 

Fonctions membres publiques

virtual void initialize ()=0
 Initialise l'instance avant le début des échanges.
 
virtual void notifyAction (const NotifyActionArgs &args)=0
 Notifie l'instance qu'on entre dans une certaine phase de l'échange.
 
virtual void serialize (const ItemFamilySerializeArgs &args)=0
 Sérialise dans/depuis buf.
 
virtual void finalize ()=0
 Effectue les traitements de fin d'échange.
 
virtual ePhase phase () const =0
 Phase de la sérialisation où cette instance intervient.
 
virtual IItemFamilyfamily () const =0
 Famille associée.
 

Description détaillée

Interface d'une étape de la sérialisation des familles d'entités.

Cette interface est utilisée par IItemFamilyExchanger pour sérialiser et désérialiser des informations. La sérialisation se fait par échange de messages et il y a un message par rang avec lequel on communique.

Le pseudo-code d'appel est le suivant:

IItemFamilyExchanger* exchanger = ...;
exchanger->computeExchangeInfos();
step->initialize();
// Some exchanger action
...
step->notifyAction(AC_BeginPrepareSend);
// Set serialize mode to ISerializer::ModeReserve
for( Integer i=0; i<nb_message; ++i )
step->serialize(i);
// Set serialize mode to ISerializer::ModePut
for( Integer i=0; i<nb_message; ++i )
step->serialize(i);
step->notifyAction(AC_EndPrepareSend);
exchanger->processExchange();
step->notifyAction(AC_BeginReceive);
// Set serialize mode to ISerializer::ModeGet
for( Integer i=0; i<nb_message; ++i )
step->serialize(i);
step->notifyAction(AC_EndReceive);
step->finalize();
Échange des entités et leurs caractéristiques pour une famille donnée.
virtual void processExchange()=0
Envoie les messages d'échange.
virtual bool computeExchangeInfos()=0
Détermine les informations nécessaires pour les échanges.
@ AC_EndPrepareSend
Fin de la préparation de l'envoie.
@ AC_BeginPrepareSend
Début de la préparation de l'envoie.
@ AC_BeginReceive
Début de la réception des données.
@ AC_EndReceive
Fin de la réception des données.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:120

La méthode serialize() est appelée pour chaque rang avec lequel on communique.

L'étape est appelé lors de la phase de sérialisation spécifiée par phase() comme spécifié dans la documentation de IItemFamilyExchanger.

Pour la phase spécifiée, l'ordre d'appel est le suivant:

sbuf->setMode(ISerializer::ModeReserve)
step->beginSerialize(sbuf->mode())
Interface d'une étape de la sérialisation des familles d'entités.

Définition à la ligne 78 du fichier IItemFamilySerializeStep.h.

Documentation des énumérations membres

◆ eAction

Action en cours de la sérialisation.

Valeurs énumérées
AC_BeginPrepareSend 

Début de la préparation de l'envoie.

AC_EndPrepareSend 

Fin de la préparation de l'envoie.

AC_BeginReceive 

Début de la réception des données.

AC_EndReceive 

Fin de la réception des données.

Définition à la ligne 89 du fichier IItemFamilySerializeStep.h.

◆ ePhase

Phase de la sérialisation.

Définition à la ligne 82 du fichier IItemFamilySerializeStep.h.

Documentation des constructeurs et destructeur

◆ ~IItemFamilySerializeStep()

virtual Arcane::IItemFamilySerializeStep::~IItemFamilySerializeStep ( )
inlinevirtual

Définition à la ligne 116 du fichier IItemFamilySerializeStep.h.

Documentation des fonctions membres

◆ family()

virtual IItemFamily * Arcane::IItemFamilySerializeStep::family ( ) const
pure virtual

◆ finalize()

virtual void Arcane::IItemFamilySerializeStep::finalize ( )
pure virtual

◆ initialize()

virtual void Arcane::IItemFamilySerializeStep::initialize ( )
pure virtual

◆ notifyAction()

virtual void Arcane::IItemFamilySerializeStep::notifyAction ( const NotifyActionArgs args)
pure virtual

Notifie l'instance qu'on entre dans une certaine phase de l'échange.

Implémenté dans Arcane::ItemFamilyVariableSerializer, Arcane::TiedInterfaceExchanger, et Arcane::Materials::MeshMaterialExchangeMng::ExchangeCellStep.

◆ phase()

virtual ePhase Arcane::IItemFamilySerializeStep::phase ( ) const
pure virtual

Phase de la sérialisation où cette instance intervient.

Implémenté dans Arcane::Materials::MeshMaterialExchangeMng::ExchangeCellStep, Arcane::ItemFamilyVariableSerializer, et Arcane::TiedInterfaceExchanger.

◆ serialize()

virtual void Arcane::IItemFamilySerializeStep::serialize ( const ItemFamilySerializeArgs args)
pure virtual

Sérialise dans/depuis buf.

args.rank() contient le rang du sous-domaine avec lequel on communique. args.messageIndex() l'index numéro du message et args.nbMessageIndex() le nombre de message qui seront envoyés.

En sérialisation, il s'agit des indices locaux des entités envoyées au rang rank(). En désérialisation, il s'agit des indices locaux recues par le rang rank().

Implémenté dans Arcane::Materials::MeshMaterialExchangeMng::ExchangeCellStep, Arcane::ItemFamilyVariableSerializer, et Arcane::TiedInterfaceExchanger.


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