Interface for a serialization message between IMessagePassingMng. More...
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 ISerializer * | serializer ()=0 |
| Serializer. | |
| virtual bool | finished () const =0 |
| true if the message is finished | |
| virtual void | setFinished (bool v)=0 |
| Sets the 'finished' state of the message. | |
| virtual void | setTag (Int32 tag)=0 |
| virtual void | setInternalTag (MessageTag tag)=0 |
| Sets an internal tag for the message. | |
| virtual Int32 | tag () const =0 |
| Internal tag of the message. | |
| virtual MessageTag | internalTag () const =0 |
| Internal tag of the message. | |
| virtual MessageId | _internalMessageId () const =0 |
| Message identifier. | |
| 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. | |
Interface for a serialization message between IMessagePassingMng.
A serialization message consists of a series of bytes sent from a source rank() to a destination rank(). If isSend() is true, source() sends to destination(), otherwise it is the reverse. If it is a receive message, the serializer() is allocated and filled automatically. For parallelism to work correctly, a send message must correspond to a receive message (sent by the destination rank).
The message can be non-blocking. A message can be destroyed when its finished() property is true.
Definition at line 45 of file arccore/src/message_passing/arccore/message_passing/ISerializeMessage.h.
| enum Arcane::MessagePassing::ISerializeMessage::eMessageType |
Definition at line 49 of file arccore/src/message_passing/arccore/message_passing/ISerializeMessage.h.
|
strong |
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.
|
pure virtual |
Message identifier.
Implemented in Arcane::MessagePassing::BasicSerializeMessage, Arcane::MessagePassing::internal::BasicSerializeMessage, Arccore::MessagePassing::internal::BasicSerializeMessage, and Arccore::MessagePassing::Mpi::BasicSerializeMessage.
References _internalMessageId().
Referenced by _internalMessageId().
|
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::mesh::FaceUniqueIdBuilder::_exchangeData(), Arcane::mesh::Parallel3EdgeUniqueIdBuilder::_exchangeData(), Arcane::ParallelExchanger::_processExchangeWithControl(), Arcane::Parallel::VariableParallelOperationBase::applyOperation(), destination(), Arcane::mesh::ItemsExchangeInfo2::prepareToSend(), Arcane::mesh::ItemsExchangeInfo2::readAndAllocItems(), Arcane::mesh::ItemsExchangeInfo2::readGroups(), and Arcane::mesh::ItemsExchangeInfo2::removeSentItems().
|
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().
|
pure virtual |
true if the message is finished
Implemented in Arcane::MessagePassing::BasicSerializeMessage, Arcane::MessagePassing::internal::BasicSerializeMessage, Arccore::MessagePassing::internal::BasicSerializeMessage, and Arccore::MessagePassing::Mpi::BasicSerializeMessage.
References finished().
Referenced by finished().
|
pure virtual |
Internal tag of the message.
Implemented in Arcane::MessagePassing::BasicSerializeMessage, Arcane::MessagePassing::internal::BasicSerializeMessage, Arccore::MessagePassing::internal::BasicSerializeMessage, and Arccore::MessagePassing::Mpi::BasicSerializeMessage.
References internalTag().
Referenced by internalTag().
|
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().
|
pure virtual |
true if it should send, false if it should receive
Implemented in Arcane::MessagePassing::BasicSerializeMessage, Arcane::MessagePassing::internal::BasicSerializeMessage, Arccore::MessagePassing::internal::BasicSerializeMessage, and Arccore::MessagePassing::Mpi::BasicSerializeMessage.
Referenced by Arcane::ParallelExchanger::_processExchangeWithControl().
|
pure virtual |
|
pure virtual |
Message sender rank See also destRank() for interpretation based on the value of isSend().
Implemented in Arcane::MessagePassing::BasicSerializeMessage, Arcane::MessagePassing::internal::BasicSerializeMessage, Arccore::MessagePassing::internal::BasicSerializeMessage, and Arccore::MessagePassing::Mpi::BasicSerializeMessage.
References origRank().
Referenced by origRank().
|
pure virtual |
Serializer.
Implemented in Arcane::MessagePassing::BasicSerializeMessage, Arcane::MessagePassing::internal::BasicSerializeMessage, Arccore::MessagePassing::internal::BasicSerializeMessage, and Arccore::MessagePassing::Mpi::BasicSerializeMessage.
References serializer().
Referenced by Arcane::mesh::FaceUniqueIdBuilder::_computeFacesUniqueIdsParallelV2(), Arcane::mesh::FaceUniqueIdBuilder::_exchangeData(), Arcane::mesh::Parallel3EdgeUniqueIdBuilder::_exchangeData(), Arcane::mesh::GhostLayerBuilder::addGhostChildFromParent(), Arcane::Parallel::VariableParallelOperationBase::applyOperation(), Arcane::mesh::ItemsExchangeInfo2::prepareToSend(), Arcane::mesh::ItemsExchangeInfo2::readAndAllocItems(), Arcane::mesh::ItemsExchangeInfo2::readGroups(), and serializer().
|
pure virtual |
Sets the 'finished' state of the message.
Implemented in Arcane::MessagePassing::BasicSerializeMessage, Arcane::MessagePassing::internal::BasicSerializeMessage, Arccore::MessagePassing::internal::BasicSerializeMessage, and Arccore::MessagePassing::Mpi::BasicSerializeMessage.
References setFinished().
Referenced by setFinished().
|
pure virtual |
Sets an internal tag for the message.
This tag is useful if multiple messages need to be sent/received to the same origin/destination pair.
This method is internal to Arccore.
Implemented in Arcane::MessagePassing::BasicSerializeMessage, Arcane::MessagePassing::internal::BasicSerializeMessage, Arccore::MessagePassing::internal::BasicSerializeMessage, and Arccore::MessagePassing::Mpi::BasicSerializeMessage.
References setInternalTag(), and tag().
Referenced by setInternalTag().
|
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().
|
pure virtual |
Implemented in Arcane::MessagePassing::BasicSerializeMessage, Arcane::MessagePassing::internal::BasicSerializeMessage, Arccore::MessagePassing::internal::BasicSerializeMessage, and Arccore::MessagePassing::Mpi::BasicSerializeMessage.
References setTag(), and tag().
Referenced by setTag().
|
pure virtual |
Message sender rank.
See also destination() for interpretation based on the value of isSend()
Implemented in Arcane::MessagePassing::BasicSerializeMessage, Arcane::MessagePassing::internal::BasicSerializeMessage, Arccore::MessagePassing::internal::BasicSerializeMessage, and Arccore::MessagePassing::Mpi::BasicSerializeMessage.
References source().
Referenced by Arcane::ParallelExchanger::_processExchangeWithControl(), and source().
|
pure virtual |
Strategy used for sends/receives.
Implemented in Arcane::MessagePassing::BasicSerializeMessage, Arcane::MessagePassing::internal::BasicSerializeMessage, Arccore::MessagePassing::internal::BasicSerializeMessage, and Arccore::MessagePassing::Mpi::BasicSerializeMessage.
References strategy().
Referenced by setStrategy(), and strategy().
|
pure virtual |
Internal tag of the message.
Implemented in Arcane::MessagePassing::BasicSerializeMessage, Arcane::MessagePassing::internal::BasicSerializeMessage, Arccore::MessagePassing::internal::BasicSerializeMessage, and Arccore::MessagePassing::Mpi::BasicSerializeMessage.
References tag().
Referenced by setInternalTag(), setTag(), and tag().