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;
42 static const int MAX_REQUEST_SIZE = 256;
46 Byte m_bytes[MAX_REQUEST_SIZE];
53 ~MpiSerializeDispatcher()
override;
65 Int64 serializeBufferSize()
const {
return m_serialize_buffer_size; }
69 void checkFinishedSubRequests();
70 MpiAdapter* adapter()
const {
return m_adapter; }
75 ITraceMng* traceMng()
const {
return m_trace; }
88 Int64 m_serialize_buffer_size;
89 Int64 m_max_serialize_buffer_size;
91 bool m_is_trace_serializer =
false;
92 MPI_Datatype m_byte_serializer_datatype;
98 void _checkBigMessage(
Int64 message_size);
Declarations of types for the 'base' component of Arccore.
Basic implementation of 'ISerializer'.
Interface of the message passing manager.
Interface for serialization messages.
Request receiveSerializer(ISerializer *s, const PointToPointMessageInfo &message) override
Receiving message.
Ref< ISerializeMessageList > createSerializeMessageListRef() override
Create a list of serialization messages.
Request sendSerializer(const ISerializer *s, const PointToPointMessageInfo &message) override
Sending message.
Information for sending/receiving a point-to-point message.
Reference to an instance.
View of an array of elements of type T.
1D data vector with value semantics (STL style).
std::int64_t Int64
Signed integer type of 64 bits.
unsigned char Byte
Type of a byte.