12#ifndef ARCCORE_MESSAGEPASSING_POINTTOPOINTINFO_H
13#define ARCCORE_MESSAGEPASSING_POINTTOPOINTINFO_H
17#include "arccore/message_passing/MessageId.h"
18#include "arccore/message_passing/MessageTag.h"
19#include "arccore/message_passing/MessageRank.h"
69 : m_destination_rank(dest_rank)
70 , m_type(Type::T_RankTag)
75 : m_destination_rank(dest_rank)
76 , m_is_blocking(blocking_type == Blocking)
77 , m_type(Type::T_RankTag)
82 : m_destination_rank(dest_rank)
84 , m_type(Type::T_RankTag)
89 : m_destination_rank(dest_rank)
91 , m_is_blocking(blocking_type == Blocking)
92 , m_type(Type::T_RankTag)
97 : m_message_id(message_id)
98 , m_type(Type::T_MessageId)
100 _setInfosFromMessageId();
105 : m_message_id(message_id)
106 , m_is_blocking(blocking_type == Blocking)
107 , m_type(Type::T_MessageId)
109 _setInfosFromMessageId();
118 ARCCORE_DEPRECATED_REASON(
"Y2022: This constructor is internal to Arcane and deprecated")
120 : m_emiter_rank(emiter_rank)
121 , m_destination_rank(dest_rank)
122 , m_is_blocking(blocking_type == Blocking)
123 , m_type(Type::T_RankTag)
127 ARCCORE_DEPRECATED_REASON(
"Y2022: This constructor is internal to Arcane and deprecated")
129 : m_emiter_rank(emiter_rank)
130 , m_destination_rank(dest_rank)
132 , m_type(Type::T_RankTag)
136 ARCCORE_DEPRECATED_REASON(
"Y2022: This constructor is internal to Arcane and deprecated")
138 : m_emiter_rank(emiter_rank)
139 , m_destination_rank(dest_rank)
140 , m_type(Type::T_RankTag)
151 : m_emiter_rank(emiter_rank)
152 , m_destination_rank(dest_rank)
154 , m_is_blocking(blocking_type == Blocking)
155 , m_type(Type::T_RankTag)
160 PointToPointMessageInfo& setBlocking(
bool is_blocking)
162 m_is_blocking = is_blocking;
170 bool isRankTag()
const {
return m_type == Type::T_RankTag; }
176 m_type = Type::T_MessageId;
177 m_message_id = message_id;
178 _setInfosFromMessageId();
183 m_type = Type::T_RankTag;
186 setDestinationRank(rank);
194 m_destination_rank = rank;
197 m_message_id.setSourceInfo(si);
213 m_message_id.setSourceInfo(si);
216 void print(std::ostream& o)
const;
229 if (m_type == Type::T_Null)
231 if (m_type == Type::T_MessageId)
232 return m_message_id.isValid();
233 if (m_type == Type::T_RankTag)
241 ARCCORE_DEPRECATED_REASON(
"Y2022: Use emiterRank() instead")
245 ARCCORE_DEPRECATED_REASON(
"Y2022: Use setEmiterRank() instead")
254 bool m_is_blocking =
true;
255 Type m_type = Type::T_Null;
257 void _setInfosFromMessageId()
MessageSourceInfo sourceInfo() const
Informations sur la source du message;.
Informations sur la source d'un message.
MessageTag tag() const
Tag du message.
MessageRank rank() const
Rang de la source.
void setTag(MessageTag tag)
Positionne le tag du message.
void setRank(MessageRank rank)
Positionne le rang de la source.
Informations pour envoyer/recevoir un message point à point.
MessageId messageId() const
Identifiant du message.
void setDestinationRank(MessageRank rank)
Positionne le rang de la destination du message.
PointToPointMessageInfo(MessageRank dest_rank, MessageTag tag)
Message bloquant avec tag tag et ayant pour destination rank.
PointToPointMessageInfo(MessageId message_id)
Message bloquant associé à message_id.
PointToPointMessageInfo(MessageRank dest_rank)
Message bloquant avec tag par défaut et ayant pour destination rank.
MessageRank emiterRank() const
Rang de l'émetteur du message.
void setEmiterRank(MessageRank rank)
Positionne le rang de l'émetteur du message.
MessageRank destinationRank() const
Rang de la destination du message.
void setRankTag(MessageRank rank, MessageTag tag)
Positionne le rang destination et le tag du message et change le type du message.
void setTag(MessageTag tag)
Positionne le tag du message.
PointToPointMessageInfo()
Message nul.
PointToPointMessageInfo(MessageId message_id, eBlockingType blocking_type)
Message associé à message_id avec le mode bloquant blocking_type.
PointToPointMessageInfo(MessageRank dest_rank, eBlockingType blocking_type)
Message avec tag par défaut, ayant destination dest_rank et mode bloquant blocking_type.
bool isBlocking() const
Indique si le message est bloquant.
bool isMessageId() const
Vrai si l'instance a été créée avec un MessageId. Dans ce cas messageId() est valide.
PointToPointMessageInfo(MessageRank dest_rank, MessageTag tag, eBlockingType blocking_type)
Message avec tag tag, ayant pour destination dest_rank et mode bloquant blocking_type.
void setMessageId(const MessageId &message_id)
Positionne l'identifiant du message et change le type du message.
MessageTag tag() const
Tag du message.
void print(std::ostream &o) const
Affiche le message.
bool isRankTag() const
Vrai si l'instance a été créée avec un couple (rank,tag). Dans ce cas rank() et tag() sont valides.
Espace de nommage contenant les types et déclarations qui gèrent le mécanisme de parallélisme par éch...
eBlockingType
Type indiquant si un message est bloquant ou non.