12#ifndef ARCCORE_MESSAGEPASSINGMPI_INTERNAL_MPISERIALIZEDISPATCHER_H
13#define ARCCORE_MESSAGEPASSINGMPI_INTERNAL_MPISERIALIZEDISPATCHER_H
17#include "arccore/message_passing_mpi/MessagePassingMpiGlobal.h"
18#include "arccore/message_passing/ISerializeDispatcher.h"
19#include "arccore/message_passing/Request.h"
20#include "arccore/collections/Array.h"
21#include "arccore/serialize/SerializeGlobal.h"
27namespace Arcane::MessagePassing::Mpi
29class ARCCORE_MESSAGEPASSINGMPI_EXPORT MpiSerializeDispatcher
32 friend MpiSerializeMessageList;
41 static const int MAX_REQUEST_SIZE = 256;
43 Byte m_bytes[MAX_REQUEST_SIZE];
50 ~MpiSerializeDispatcher()
override;
62 Int64 serializeBufferSize()
const {
return m_serialize_buffer_size; }
66 void checkFinishedSubRequests();
67 MpiAdapter* adapter()
const {
return m_adapter; }
72 ITraceMng* traceMng()
const {
return m_trace; }
85 Int64 m_serialize_buffer_size;
86 Int64 m_max_serialize_buffer_size;
88 bool m_is_trace_serializer =
false;
89 MPI_Datatype m_byte_serializer_datatype;
95 void _checkBigMessage(
Int64 message_size);
Déclarations des types de la composante 'base' de Arccore.
Implémentation basique de 'ISerializer'.
Interface d'un sérialiseur.
Interface du gestionnaire de traces.
Interface du gestionnaire des échanges de messages.
Interface des messages de sérialisation.
Request receiveSerializer(ISerializer *s, const PointToPointMessageInfo &message) override
Message de réception.
Ref< ISerializeMessageList > createSerializeMessageListRef() override
Créé une liste de messages de sérialisation.
Request sendSerializer(const ISerializer *s, const PointToPointMessageInfo &message) override
Message d'envoi.
Informations pour envoyer/recevoir un message point à point.
Référence à une instance.
Vue d'un tableau d'éléments de type T.
Vecteur 1D de données avec sémantique par valeur (style STL).
std::int64_t Int64
Type entier signé sur 64 bits.
unsigned char Byte
Type d'un octet.