Interface d'une étape de la sérialisation des familles d'entités. Plus de détails...
#include <arcane/core/IItemFamilySerializeStep.h>
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 IItemFamily * | family () const =0 |
Famille associé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:
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:
Définition à la ligne 78 du fichier IItemFamilySerializeStep.h.
Action en cours de la sérialisation.
Définition à la ligne 89 du fichier IItemFamilySerializeStep.h.
Phase de la sérialisation.
Définition à la ligne 82 du fichier IItemFamilySerializeStep.h.
|
inlinevirtual |
Définition à la ligne 116 du fichier IItemFamilySerializeStep.h.
|
pure virtual |
Famille associée.
Implémenté dans Arcane::Materials::MeshMaterialExchangeMng::ExchangeCellStep, Arcane::ItemFamilyVariableSerializer, et Arcane::TiedInterfaceExchanger.
Effectue les traitements de fin d'échange.
Implémenté dans Arcane::Materials::MeshMaterialExchangeMng::ExchangeCellStep, Arcane::ItemFamilyVariableSerializer, et Arcane::TiedInterfaceExchanger.
Initialise l'instance avant le début des échanges.
Implémenté dans Arcane::Materials::MeshMaterialExchangeMng::ExchangeCellStep, Arcane::ItemFamilyVariableSerializer, et Arcane::TiedInterfaceExchanger.
|
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 de la sérialisation où cette instance intervient.
Implémenté dans Arcane::Materials::MeshMaterialExchangeMng::ExchangeCellStep, Arcane::ItemFamilyVariableSerializer, et Arcane::TiedInterfaceExchanger.
|
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.