Arcane  4.2.3.0
Developer documentation
Loading...
Searching...
No Matches
IMessagePassingMng.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/* IMessagePassingMng.h (C) 2000-2026 */
9/* */
10/* Interface of the message passing manager. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCCORE_MESSAGEPASSING_IMESSAGEPASSINGMNG_H
13#define ARCCORE_MESSAGEPASSING_IMESSAGEPASSINGMNG_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
18
19/*---------------------------------------------------------------------------*/
20/*---------------------------------------------------------------------------*/
21
23{
24
25/*---------------------------------------------------------------------------*/
26/*---------------------------------------------------------------------------*/
34extern "C++" void ARCCORE_MESSAGEPASSING_EXPORT
36
37/*---------------------------------------------------------------------------*/
38/*---------------------------------------------------------------------------*/
53class ARCCORE_MESSAGEPASSING_EXPORT IMessagePassingMng
54{
55 friend void ARCCORE_MESSAGEPASSING_EXPORT mpDelete(IMessagePassingMng*);
57
58 public:
59
60 virtual ~IMessagePassingMng() = default;
61
62 public:
63
65 virtual Int32 commRank() const = 0;
66
68 virtual Int32 commSize() const = 0;
69
72
74 virtual ITraceMng* traceMng() const =0;
75
91 virtual Communicator communicator() const;
92
93 public:
94
95 virtual IDispatchers* dispatchers() = 0;
96};
97
98/*---------------------------------------------------------------------------*/
99/*---------------------------------------------------------------------------*/
100
101} // namespace Arcane::MessagePassing
102
103/*---------------------------------------------------------------------------*/
104/*---------------------------------------------------------------------------*/
105
106#endif
General declarations for the 'message_passing' component.
#define ARCCORE_DECLARE_REFERENCE_COUNTED_INCLASS_METHODS()
Macro to declare the virtual methods managing reference counters.
friend void mpDelete(IMessagePassingMng *)
Destroys the message passing instance p.
Interface managing statistics on execution.
Communicator for message exchange.
Interface of the dispatcher container.
Interface of the message passing manager.
virtual ITraceMng * traceMng() const =0
Trace manager associated to this instance.
virtual Int32 commRank() const =0
Rank of this instance in the communicator.
virtual Communicator communicator() const
MPI communicator associated with this instance.
virtual Int32 commSize() const =0
Number of instances in the communicator.
virtual ITimeMetricCollector * timeMetricCollector() const =0
Interface for collecting execution times (can be null).
Declarations of types and methods used by message exchange mechanisms.
void mpDelete(IMessagePassingMng *p)
Destroys the message passing instance p.
std::int32_t Int32
Signed integer type of 32 bits.