Arcane  4.1.12.0
User documentation
Loading...
Searching...
No Matches
Arcane::MessagePassing::ISerializeMessage Class Referenceabstract

Public Types

enum  eMessageType { MT_Send , MT_Recv , MT_Broadcast }
enum class  eStrategy { Default , OneMessage }
 Sending/receiving strategy. More...

Public Member Functions

virtual ~ISerializeMessage ()=default
 Releases resources.
virtual bool isSend () const =0
 true if it should send, false if it should receive
virtual eMessageType messageType () const =0
 Message type.
virtual Int32 destRank () const =0
 Destination rank (if isSend() is true) or sender.
virtual MessageRank destination () const =0
 Destination rank (if isSend() is true) or sender.
virtual Int32 origRank () const =0
 Message sender rank See also destRank() for interpretation based on the value of isSend().
virtual MessageRank source () const =0
 Message sender rank.
virtual ISerializerserializer ()=0
 Serializer.
virtual bool finished () const =0
 true if the message is finished
virtual void setFinished (bool v)=0
virtual void setTag (Int32 tag)=0
virtual void setInternalTag (MessageTag tag)=0
virtual Int32 tag () const =0
virtual MessageTag internalTag () const =0
virtual MessageId _internalMessageId () const =0
virtual void setStrategy (eStrategy strategy)=0
 Sets the sending/receiving strategy.
virtual eStrategy strategy () const =0
 Strategy used for sends/receives.
virtual bool isProcessed () const =0
 Indicates if the message has already been processed.

Detailed Description

Member Enumeration Documentation

◆ eMessageType

enum Arcane::MessagePassing::ISerializeMessage::eMessageType

◆ eStrategy

Sending/receiving strategy.

Enumerator
Default 

Default strategy.

OneMessage 

Strategy using a single message if possible.

This assumes using the mpProbe() function to know the message size before posting the reception.

Definition at line 56 of file arccore/src/message_passing/arccore/message_passing/ISerializeMessage.h.

Member Function Documentation

◆ destination()

virtual MessageRank Arcane::MessagePassing::ISerializeMessage::destination ( ) const
pure virtual

Destination rank (if isSend() is true) or sender.

In the case of a reception, the rank can be null to indicate that you wish to receive from anyone. rank by specifying A_NULL_RANK.

Implemented in Arcane::MessagePassing::BasicSerializeMessage, Arcane::MessagePassing::internal::BasicSerializeMessage, Arccore::MessagePassing::internal::BasicSerializeMessage, and Arccore::MessagePassing::Mpi::BasicSerializeMessage.

References destination().

Referenced by Arcane::Parallel::VariableParallelOperationBase::applyOperation(), and destination().

◆ destRank()

virtual Int32 Arcane::MessagePassing::ISerializeMessage::destRank ( ) const
pure virtual

Destination rank (if isSend() is true) or sender.

In the case of a reception, it is possible to specify any rank by specifying A_NULL_RANK.

Implemented in Arcane::MessagePassing::BasicSerializeMessage, Arcane::MessagePassing::internal::BasicSerializeMessage, Arccore::MessagePassing::internal::BasicSerializeMessage, and Arccore::MessagePassing::Mpi::BasicSerializeMessage.

References destRank().

Referenced by destRank().

◆ finished()

virtual bool Arcane::MessagePassing::ISerializeMessage::finished ( ) const
pure virtual

◆ isProcessed()

virtual bool Arcane::MessagePassing::ISerializeMessage::isProcessed ( ) const
pure virtual

Indicates if the message has already been processed.

If the message has already been processed, it is not possible to change certain characteristics (such as the strategy or the tag)

Implemented in Arcane::MessagePassing::BasicSerializeMessage, Arcane::MessagePassing::internal::BasicSerializeMessage, Arccore::MessagePassing::internal::BasicSerializeMessage, and Arccore::MessagePassing::Mpi::BasicSerializeMessage.

References isProcessed().

Referenced by isProcessed().

◆ isSend()

virtual bool Arcane::MessagePassing::ISerializeMessage::isSend ( ) const
pure virtual

◆ messageType()

virtual eMessageType Arcane::MessagePassing::ISerializeMessage::messageType ( ) const
pure virtual

◆ origRank()

virtual Int32 Arcane::MessagePassing::ISerializeMessage::origRank ( ) const
pure virtual

◆ serializer()

◆ setStrategy()

virtual void Arcane::MessagePassing::ISerializeMessage::setStrategy ( eStrategy strategy)
pure virtual

Sets the sending/receiving strategy.

The strategy used must be the same for the sent message and the receive message, otherwise the behavior is undefined.

Implemented in Arcane::MessagePassing::BasicSerializeMessage, Arcane::MessagePassing::internal::BasicSerializeMessage, Arccore::MessagePassing::internal::BasicSerializeMessage, and Arccore::MessagePassing::Mpi::BasicSerializeMessage.

References setStrategy(), and strategy().

Referenced by setStrategy().

◆ source()

virtual MessageRank Arcane::MessagePassing::ISerializeMessage::source ( ) const
pure virtual

◆ strategy()

virtual eStrategy Arcane::MessagePassing::ISerializeMessage::strategy ( ) const
pure virtual

The documentation for this class was generated from the following file: