Arcane  4.1.12.0
Developer documentation
Loading...
Searching...
No Matches
PointToPointSerializerMng.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2026 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
4// See the top-level COPYRIGHT file for details.
5// SPDX-License-Identifier: Apache-2.0
6//-----------------------------------------------------------------------------
7/*---------------------------------------------------------------------------*/
8/* PointToPointSerializerMng.h (C) 2000-2025 */
9/* */
10/* Point-to-point communications using 'ISerializer'. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCCORE_MESSAGEPASSING_POINTOTPOINTSERIALIZERMNG_H
13#define ARCCORE_MESSAGEPASSING_POINTOTPOINTSERIALIZERMNG_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arccore/message_passing/ISerializeMessage.h"
19
20#include <functional>
21
22/*---------------------------------------------------------------------------*/
23/*---------------------------------------------------------------------------*/
24
26{
27
28/*---------------------------------------------------------------------------*/
29/*---------------------------------------------------------------------------*/
30
32
33/*---------------------------------------------------------------------------*/
34/*---------------------------------------------------------------------------*/
35
39class ARCCORE_MESSAGEPASSING_EXPORT PointToPointSerializerMng
40{
41 class Impl;
42
43 public:
44
45 PointToPointSerializerMng(IMessagePassingMng* mpm);
46 ~PointToPointSerializerMng();
47
48 public:
49
50 PointToPointSerializerMng(const PointToPointSerializerMng&) = delete;
51 PointToPointSerializerMng& operator=(const PointToPointSerializerMng&) = delete;
52
53 public:
54
57
65
74 Integer waitMessages(eWaitType wt, std::function<void(ISerializeMessage*)> functor);
75
77 bool hasMessages() const;
78
87
96
101
109 void setDefaultTag(MessageTag default_tag);
110
119
120 private:
121
122 Impl* m_p;
123};
124
125/*---------------------------------------------------------------------------*/
126/*---------------------------------------------------------------------------*/
127
128} // namespace Arcane::MessagePassing
129
130/*---------------------------------------------------------------------------*/
131/*---------------------------------------------------------------------------*/
132
133#endif
Interface of the message passing manager.
IMessagePassingMng * messagePassingMng() const
Associated message manager.
bool hasMessages() const
Indicates if there are remaining messages that have not yet finished.
void setStrategy(ISerializeMessage::eStrategy strategy)
Strategy used for messages.
Integer waitMessages(eWaitType wt, std::function< void(ISerializeMessage *)> functor)
Waits for the messages to finish execution.
Ref< ISerializeMessage > addSendMessage(MessageRank receiver_rank)
Creates a sending serialization message.
void setDefaultTag(MessageTag default_tag)
Default tag used for messages.
Ref< ISerializeMessage > addReceiveMessage(MessageRank sender_rank)
Creates a receiving serialization message.
void processPendingMessages()
Sends the messages from the list that have not yet been processed.
Reference to an instance.
Declarations of types and methods used by message exchange mechanisms.
Int32 Integer
Type representing an integer.