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

Gère la sérialisation/désérialisation des variables d'une famille. Plus de détails...

#include <arcane/mesh/ItemFamilyVariableSerializer.h>

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

Fonctions membres publiques

 ItemFamilyVariableSerializer (IItemFamily *family)
 
void initialize () override
 Initialise l'instance avant le début des échanges.
 
void notifyAction (const NotifyActionArgs &) override
 Notifie l'instance qu'on entre dans une certaine phase de l'échange.
 
void serialize (const ItemFamilySerializeArgs &args) override
 
void finalize () override
 Effectue les traitements de fin d'échange.
 
ePhase phase () const override
 Phase de la sérialisation où cette instance intervient.
 
IItemFamilyfamily () const override
 Famille associée.
 
- Fonctions membres publiques hérités de Arccore::TraceAccessor
 TraceAccessor (ITraceMng *m)
 Construit un accesseur via le gestionnaire de trace m.
 
 TraceAccessor (const TraceAccessor &rhs)
 Constructeur par recopie.
 
TraceAccessoroperator= (const TraceAccessor &rhs)
 Opérateur de recopie.
 
virtual ~TraceAccessor ()
 Libère les ressources.
 
ITraceMngtraceMng () const
 Gestionnaire de trace.
 
TraceMessage info () const
 Flot pour un message d'information.
 
TraceMessage pinfo () const
 Flot pour un message d'information en parallèle.
 
TraceMessage info (char category) const
 Flot pour un message d'information d'une catégorie donnée.
 
TraceMessage pinfo (char category) const
 Flot pour un message d'information parallèle d'une catégorie donnée.
 
TraceMessage info (bool v) const
 Flot pour un message d'information.
 
TraceMessage warning () const
 Flot pour un message d'avertissement.
 
TraceMessage pwarning () const
 
TraceMessage error () const
 Flot pour un message d'erreur.
 
TraceMessage perror () const
 
TraceMessage log () const
 Flot pour un message de log.
 
TraceMessage plog () const
 Flot pour un message de log.
 
TraceMessage logdate () const
 Flot pour un message de log précédé de la date.
 
TraceMessage fatal () const
 Flot pour un message d'erreur fatale.
 
TraceMessage pfatal () const
 Flot pour un message d'erreur fatale en parallèle.
 
TraceMessageDbg debug (Trace::eDebugLevel=Trace::Medium) const
 Flot pour un message de debug.
 
Trace::eDebugLevel configDbgLevel () const
 Niveau debug du fichier de configuration.
 
TraceMessage info (Int32 verbose_level) const
 Flot pour un message d'information d'un niveau donné
 
TraceMessage linfo () const
 Flot pour un message d'information avec le niveau d'information local à cette instance.
 
TraceMessage linfo (Int32 relative_level) const
 Flot pour un message d'information avec le niveau d'information local à cette instance.
 
void fatalMessage (const StandaloneTraceMessage &o) const
 

Fonctions membres protégées

IItemFamily_family () const
 
- Fonctions membres protégées hérités de Arccore::TraceAccessor
void _setLocalVerboseLevel (Int32 v)
 
Int32 _localVerboseLevel () const
 

Fonctions membres privées

void _serializePartialVariable (IVariable *var, ISerializer *sbuf, Int32ConstArrayView local_ids)
 Serialise une variable partielle.
 
void _checkSerialization (ISerializer *sbuf, Int32ConstArrayView local_ids)
 Sérialize un nombre magique et le nombre d'entité afin de vérifier que la désérialisation est correct.
 
void _checkSerializationVariable (ISerializer *sbuf, IVariable *var)
 Sérialise le nom de la variable pour vérifier que la désérialisation est correcte.
 

Attributs privés

IItemFamilym_item_family
 
UniqueArray< IVariable * > m_variables_to_exchange
 Liste des variables à échanger.
 

Membres hérités additionnels

- Types publics hérités de Arcane::IItemFamilySerializeStep
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...
 

Description détaillée

Gère la sérialisation/désérialisation des variables d'une famille.

Définition à la ligne 39 du fichier ItemFamilyVariableSerializer.h.

Documentation des constructeurs et destructeur

◆ ItemFamilyVariableSerializer()

Arcane::mesh::ItemFamilyVariableSerializer::ItemFamilyVariableSerializer ( IItemFamily family)

Définition à la ligne 63 du fichier ItemFamilyVariableSerializer.cc.

◆ ~ItemFamilyVariableSerializer()

Arcane::mesh::ItemFamilyVariableSerializer::~ItemFamilyVariableSerializer ( )

Définition à la ligne 73 du fichier ItemFamilyVariableSerializer.cc.

Documentation des fonctions membres

◆ _checkSerialization()

void Arcane::mesh::ItemFamilyVariableSerializer::_checkSerialization ( ISerializer sbuf,
Int32ConstArrayView  local_ids 
)
private

Sérialize un nombre magique et le nombre d'entité afin de vérifier que la désérialisation est correct.

Définition à la ligne 132 du fichier ItemFamilyVariableSerializer.cc.

Références ARCANE_FATAL.

◆ _checkSerializationVariable()

void Arcane::mesh::ItemFamilyVariableSerializer::_checkSerializationVariable ( ISerializer sbuf,
IVariable var 
)
private

Sérialise le nom de la variable pour vérifier que la désérialisation est correcte.

Définition à la ligne 172 du fichier ItemFamilyVariableSerializer.cc.

Références ARCANE_FATAL.

◆ _family()

IItemFamily * Arcane::ItemFamilyVariableSerializer::_family ( ) const
inlineprotected

Définition à la ligne 54 du fichier ItemFamilyVariableSerializer.h.

◆ _serializePartialVariable()

void Arcane::mesh::ItemFamilyVariableSerializer::_serializePartialVariable ( IVariable var,
ISerializer sbuf,
Int32ConstArrayView  local_ids 
)
private

Serialise une variable partielle.

Cette méthode n'est pas très performante et doit être optimisée. En attendant, le fonctionnement est le suivant pour l'envoie

  • détermine la liste des entités a envoyer en se basant sur le nouveau propriétaire des entités.
  • sérialise les uniqueId() de ces entités
  • sérialise la variable. Pour la réception:
  • construit une table de hashage uniqueId() -> index dans la variable
  • désérialise les uniqueId() et les convertie en index
  • désérialise la variable.

TODO: eviter d'envoyer tous les ids pour chaque variable TODO: utiliser les infos de ItemGroupsSerializer2 si possible pour connaitre la liste des entités à envoyer.

Définition à la ligne 282 du fichier ItemFamilyVariableSerializer.cc.

Références ARCANE_FATAL, Arcane::DT_Int64, ENUMERATE_ITEM, Arccore::Array< T >::resize(), et Arcane::ItemGroup::size().

◆ family()

IItemFamily * Arcane::ItemFamilyVariableSerializer::family ( ) const
inlineoverridevirtual

Famille associée.

Implémente Arcane::IItemFamilySerializeStep.

Définition à la ligne 52 du fichier ItemFamilyVariableSerializer.h.

◆ finalize()

void Arcane::ItemFamilyVariableSerializer::finalize ( )
inlineoverridevirtual

Effectue les traitements de fin d'échange.

Implémente Arcane::IItemFamilySerializeStep.

Définition à la ligne 50 du fichier ItemFamilyVariableSerializer.h.

◆ initialize()

void Arcane::mesh::ItemFamilyVariableSerializer::initialize ( )
overridevirtual

Initialise l'instance avant le début des échanges.

Implémente Arcane::IItemFamilySerializeStep.

Définition à la ligne 81 du fichier ItemFamilyVariableSerializer.cc.

Références Arccore::Trace::High.

◆ notifyAction()

void Arcane::ItemFamilyVariableSerializer::notifyAction ( const NotifyActionArgs args)
inlineoverridevirtual

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

Implémente Arcane::IItemFamilySerializeStep.

Définition à la ligne 48 du fichier ItemFamilyVariableSerializer.h.

◆ phase()

ePhase Arcane::ItemFamilyVariableSerializer::phase ( ) const
inlineoverridevirtual

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

Implémente Arcane::IItemFamilySerializeStep.

Définition à la ligne 51 du fichier ItemFamilyVariableSerializer.h.

◆ serialize()

void Arcane::mesh::ItemFamilyVariableSerializer::serialize ( const ItemFamilySerializeArgs args)
overridevirtual

En sérialisation, rank est le rang de la cible. En désérialisation, rank est le rang de celui qui envoie le message.

Implémente Arcane::IItemFamilySerializeStep.

Définition à la ligne 203 du fichier ItemFamilyVariableSerializer.cc.

Références Arcane::arcaneIsDebug(), ENUMERATE_ITEM, Arccore::Trace::High, Arccore::Trace::Highest, Arcane::ItemFamilySerializeArgs::localIds(), Arcane::ItemFamilySerializeArgs::rank(), et Arcane::ItemFamilySerializeArgs::serializer().

Documentation des données membres

◆ m_item_family

IItemFamily* Arcane::ItemFamilyVariableSerializer::m_item_family
private

Définition à la ligne 56 du fichier ItemFamilyVariableSerializer.h.

◆ m_variables_to_exchange

UniqueArray<IVariable*> Arcane::ItemFamilyVariableSerializer::m_variables_to_exchange
private

Liste des variables à échanger.

IMPORTANT: Cette liste doit être identique pour tous les sous-domaines sinon les désérialisations vont donner des résultats incorrects.

Définition à la ligne 63 du fichier ItemFamilyVariableSerializer.h.


La documentation de cette classe a été générée à partir des fichiers suivants :