Arcane  4.2.3.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
MessagePassingMng.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/* MessagePassingMng.h (C) 2000-2026 */
9/* */
10/* Implémentation de l'interface IMessagePassingMng. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCCORE_MESSAGEPASSING_MESSAGEPASSINGMNG_H
13#define ARCCORE_MESSAGEPASSING_MESSAGEPASSINGMNG_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
18#include "arccore/base/Ref.h"
19
20#include "arccore/message_passing/IMessagePassingMng.h"
21#include "arccore/message_passing/Communicator.h"
22
23#include "arccore/trace/TraceGlobal.h"
24
25/*---------------------------------------------------------------------------*/
26/*---------------------------------------------------------------------------*/
27
29{
30
31/*---------------------------------------------------------------------------*/
32/*---------------------------------------------------------------------------*/
39class ARCCORE_MESSAGEPASSING_EXPORT MessagePassingMng
41, public IMessagePassingMng
42{
44
45 public:
46
47 MessagePassingMng(Int32 comm_rank, Int32 comm_size, IDispatchers* d);
48 ~MessagePassingMng() override;
49
50 public:
51
52 Int32 commRank() const override { return m_comm_rank; }
53 Int32 commSize() const override { return m_comm_size; }
54 IDispatchers* dispatchers() override;
55 ITimeMetricCollector* timeMetricCollector() const override;
56 Communicator communicator() const override;
57 ITraceMng* traceMng() const override { return m_trace_mng.get(); }
58
59 public:
60
61 void setTimeMetricCollector(ITimeMetricCollector* c);
62 void setCommunicator(Communicator c);
63 void setTraceMng(ITraceMng* tm);
64
65 private:
66
67 Int32 m_comm_rank = A_NULL_RANK;
68 Int32 m_comm_size = A_NULL_RANK;
69 IDispatchers* m_dispatchers = nullptr;
70 ITimeMetricCollector* m_time_metric_collector = nullptr;
71 Communicator m_communicator;
72 Ref<ITraceMng> m_trace_mng;
73};
74
75/*---------------------------------------------------------------------------*/
76/*---------------------------------------------------------------------------*/
77
78} // End namespace Arccore::MessagePassing
79
80/*---------------------------------------------------------------------------*/
81/*---------------------------------------------------------------------------*/
82
83#endif
#define ARCCORE_DEFINE_REFERENCE_COUNTED_INCLASS_METHODS()
Macro pour définir les méthodes gérant les compteurs de référence.
Gestion des références à une classe C++.
Interface gérant les statistiques sur l'exécution.
Interface du gestionnaire de traces.
Communicateur pour l'échange de message.
Interface du conteneur des dispatchers.
Interface du gestionnaire des échanges de messages.
Int32 commSize() const override
Nombre d'instance dans le communicateur.
ITraceMng * traceMng() const override
Gestionnaire de trace associé à cette instance.
Int32 commRank() const override
Rang de cette instance dans le communicateur.
Référence à une instance.
Implémentation thread-safe d'un compteur de référence.
Déclarations des types et méthodes utilisés par les mécanismes d'échange de messages.
std::int32_t Int32
Type entier signé sur 32 bits.