Arcane  v3.16.0.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
Référence de la classe Arcane::MessagePassing::ISerializeMessageListabstract

Interface d'une liste de messages de sérialisation. Plus de détails...

#include <arccore/message_passing/ISerializeMessageList.h>

Fonctions membres publiques

virtual ~ISerializeMessageList ()
 Libère les ressources.
 
virtual void addMessage (ISerializeMessage *msg)=0
 Ajoute un message à la liste.
 
virtual void processPendingMessages ()=0
 Envoie les messages de la liste qui ne l'ont pas encore été.
 
virtual Integer waitMessages (eWaitType wt)=0
 Attend que les messages aient terminé leur exécution.
 
virtual Ref< ISerializeMessagecreateAndAddMessage (MessageRank destination, ePointToPointMessageType type)=0
 Créé et ajoute un message de sérialisation.
 

Description détaillée

Interface d'une liste de messages de sérialisation.

Les instances de cette classe sont en général créées via la méthode mpCreateSerializeMessageListRef().

using namespace Arccore;
IMessagePassingMng* mpm = ...;
// Ajoute deux messages pour recevoir du rang 1 et 3.
Ref<ISerializeMessage> message1(serialize_list->createAndAddMessage(MessageRank(1),MsgReceive));
Ref<ISerializeMessage> message2(serialize_list->createAndAddMessage(MessageRank(3),MsgReceive));
// Attend que les messages soient terminés
// En mode WaitSome ou TestSome, il est possible de savoir si
// un message est terminé en appelant la méthode ISerializeMessage::finished()
serialize_list->wait(WaitAll);
// Récupère les données de sérialisation du premier message
ISerializer* sb1 = message1.serializer();
UniqueArray<Int32> int32_array;
sb1->getArray(int32_array);
...
virtual void getArray(Array< Real > &values)=0
Redimensionne et remplit values.
virtual void setMode(eMode new_mode)=0
Positionne le fonctionnement actuel.
Interface du gestionnaire des échanges de messages.
Référence à une instance.
Vecteur 1D de données avec sémantique par valeur (style STL).
Ref< ISerializeMessageList > mpCreateSerializeMessageListRef(IMessagePassingMng *pm)
Créé une liste de messages de sérialisation.
Definition Messages.cc:267
Espace de nom de Arccore.

Définition à la ligne 55 du fichier arccore/src/message_passing/arccore/message_passing/ISerializeMessageList.h.

Documentation des constructeurs et destructeur

◆ ~ISerializeMessageList()

virtual Arcane::MessagePassing::ISerializeMessageList::~ISerializeMessageList ( )
inlinevirtual

Libère les ressources.

Définition à la ligne 59 du fichier arccore/src/message_passing/arccore/message_passing/ISerializeMessageList.h.

Documentation des fonctions membres

◆ addMessage()

virtual void Arcane::MessagePassing::ISerializeMessageList::addMessage ( ISerializeMessage * msg)
pure virtual

Ajoute un message à la liste.

Le message n'est pas posté tant qu'aucun appel à processPendingMessages() n'a été effectué. L'utilisateur garde la propriété du message qui ne doit pas être détruit tant qu'il n'est pas terminé.

Implémenté dans Arcane::MessagePassing::internal::SerializeMessageList, et Arccore::MessagePassing::internal::SerializeMessageList.

◆ createAndAddMessage()

virtual Ref< ISerializeMessage > Arcane::MessagePassing::ISerializeMessageList::createAndAddMessage ( MessageRank destination,
ePointToPointMessageType type )
pure virtual

Créé et ajoute un message de sérialisation.

Le message peut être un message d'envoie ou de réception.

Si le message est de réception (MsgReceive), il est possible de spécifier un rang nul pour indiquer qu'on souhaite recevoir de n'importe qui.

Cette méthode appelle addMessage() pour ajouter automatiquement le message créé à la liste des messages. L'instance ne conserve pas de référence au message créé qui ne doit pas être détruit tant qu'il n'est pas terminé.

Implémenté dans Arcane::MessagePassing::internal::SerializeMessageList, et Arccore::MessagePassing::internal::SerializeMessageList.

◆ processPendingMessages()

virtual void Arcane::MessagePassing::ISerializeMessageList::processPendingMessages ( )
pure virtual

Envoie les messages de la liste qui ne l'ont pas encore été.

Cette méthode envoie les messages ajoutés via addMessage() qui ne l'ont pas encore été. Il n'est en général pas nécessaire d'appeler cette méthode car cele est fait automatiquement lors de l'appel à waitMessages().

Implémenté dans Arcane::MessagePassing::internal::SerializeMessageList, et Arccore::MessagePassing::internal::SerializeMessageList.

◆ waitMessages()

virtual Integer Arcane::MessagePassing::ISerializeMessageList::waitMessages ( eWaitType wt)
pure virtual

Attend que les messages aient terminé leur exécution.

Le type d'attente est spécifié par wt.

Il est ensuite possible de tester si un message est terminé via la méthode ISerializeMessage::isFinished(). Cette classe ne garde aucune référence sur les messages terminés qui peuvent donc être détruits par l'utilisateur dès qu'il n'en a plus besoin.

Renvoie
le nombre de messages complètement exécutés ou (-1) s'ils l'ont tous été.

Implémenté dans Arcane::MessagePassing::internal::SerializeMessageList, et Arccore::MessagePassing::internal::SerializeMessageList.


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