12#ifndef ARCCORE_MESSAGEPASSING_BASICSERIALIZEMESSAGE_H
13#define ARCCORE_MESSAGEPASSING_BASICSERIALIZEMESSAGE_H
17#include "arccore/serialize/BasicSerializer.h"
18#include "arccore/message_passing/ISerializeMessage.h"
19#include "arccore/message_passing/MessageRank.h"
20#include "arccore/message_passing/MessageTag.h"
21#include "arccore/message_passing/MessageId.h"
27namespace Arccore::MessagePassing::internal
53 static const Int32 DEFAULT_SERIALIZE_TAG_VALUE = 101;
84 static Ref<ISerializeMessage>
86 static Ref<ISerializeMessage>
89 static Ref<ISerializeMessage>
94 bool isSend()
const override {
return m_is_send; }
95 eMessageType
messageType()
const override {
return m_old_message_type; }
101 bool finished()
const override {
return m_finished; }
102 void setFinished(
bool v)
override { m_finished = v; }
104 Int32 tag()
const override {
return m_tag.value(); }
105 void setInternalTag(MessageTag tag)
override { m_tag = tag; }
106 MessageTag internalTag()
const override {
return m_tag; }
107 MessageId _internalMessageId()
const override {
return m_message_id; }
108 void setStrategy(eStrategy strategy)
override;
116 Int32 messageNumber()
const {
return m_message_number; }
117 void setMessageNumber(Int32 v) { m_message_number = v; }
118 void setIsProcessed(
bool v) { m_is_processed = v; }
124 static eMessageType _toMessageType(ePointToPointMessageType mtype);
128 MessageRank m_orig_rank;
129 MessageRank m_dest_rank;
130 MessageTag m_tag = defaultTag();
133 eStrategy m_strategy = eStrategy::Default;
135 BasicSerializer* m_buffer =
nullptr;
136 bool m_finished =
false;
137 MessageId m_message_id;
138 Int32 m_message_number = 0;
139 bool m_is_processed =
false;
Interface d'un sérialiseur.
eStrategy
Stratégie d'envoi/réception.
Int32 origRank() const override
Rang de l'envoyeur du message Voir aussi destRank() pour une interprétation suivant la valeur de isSe...
ISerializer * serializer() override
Sérialiseur.
MessageRank destination() const override
Rang du destinataire (si isSend() est vrai) ou de l'envoyeur.
eStrategy strategy() const override
Stratégie utilisée pour les envois/réceptions.
static MessageTag defaultTag()
Tag par défaut pour les messages de sérialisation.
eMessageType messageType() const override
Type du message.
bool isSend() const override
true s'il faut envoyer, false s'il faut recevoir
Int32 destRank() const override
Rang du destinataire (si isSend() est vrai) ou envoyeur.
bool finished() const override
true si le message est terminé
bool isProcessed() const override
Indique si le message a déjà été traité.
MessageRank source() const override
Rang de l'envoyeur du message.
ePointToPointMessageType
Type de message point à point.
eMessageType
Flot sur lequel on envoie les messages.
std::int32_t Int32
Type entier signé sur 32 bits.