1
1
// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2
2
// -----------------------------------------------------------------------------
3
- // Copyright 2000-2022 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
3
+ // Copyright 2000-2025 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
4
4
// See the top-level COPYRIGHT file for details.
5
5
// SPDX-License-Identifier: Apache-2.0
6
6
// -----------------------------------------------------------------------------
7
7
/* ---------------------------------------------------------------------------*/
8
- /* IParallelMngUtilsFactory.h (C) 2000-2021 */
8
+ /* IParallelMngUtilsFactory.h (C) 2000-2025 */
9
9
/* */
10
10
/* Interface d'une fabrique pour les fonctions utilitaires de IParallelMng. */
11
11
/* ---------------------------------------------------------------------------*/
12
- #ifndef ARCANE_IPARALLELMNGUTILSFACTORY_H
13
- #define ARCANE_IPARALLELMNGUTILSFACTORY_H
12
+ #ifndef ARCANE_CORE_INTERNAL_IPARALLELMNGUTILSFACTORY_H
13
+ #define ARCANE_CORE_INTERNAL_IPARALLELMNGUTILSFACTORY_H
14
14
/* ---------------------------------------------------------------------------*/
15
15
/* ---------------------------------------------------------------------------*/
16
16
17
17
#include " arcane/utils/Ref.h"
18
18
19
- #include " arcane/Parallel.h"
19
+ #include " arcane/core/ Parallel.h"
20
20
21
21
/* ---------------------------------------------------------------------------*/
22
22
/* ---------------------------------------------------------------------------*/
23
23
24
- namespace Arcane
25
- {
26
- class IItemFamily ;
27
- class ItemGroup ;
28
- }
29
-
30
24
namespace Arcane
31
25
{
32
26
/* ---------------------------------------------------------------------------*/
@@ -38,51 +32,69 @@ namespace Arcane
38
32
class ARCANE_CORE_EXPORT IParallelMngUtilsFactory
39
33
{
40
34
public:
35
+
41
36
virtual ~IParallelMngUtilsFactory () = default ;
37
+
42
38
public:
43
39
44
40
/* !
45
41
* \brief Retourne une opération pour récupérer les valeurs d'une variable
46
42
* sur les entités d'un autre sous-domaine.
47
43
*/
48
44
virtual Ref<IGetVariablesValuesParallelOperation>
49
- createGetVariablesValuesOperation (IParallelMng* pm) =0 ;
45
+ createGetVariablesValuesOperation (IParallelMng* pm) = 0 ;
50
46
51
47
// ! Retourne une opération pour transférer des valeurs entre rangs.
52
48
virtual Ref<ITransferValuesParallelOperation>
53
- createTransferValuesOperation (IParallelMng* pm) =0 ;
49
+ createTransferValuesOperation (IParallelMng* pm) = 0 ;
54
50
55
51
// ! Retourne une interface pour transférer des messages entre rangs
56
52
virtual Ref<IParallelExchanger>
57
- createExchanger (IParallelMng* pm) =0 ;
53
+ createExchanger (IParallelMng* pm) = 0 ;
58
54
59
55
/* !
60
56
* \brief Retourne une interface pour synchroniser des
61
57
* variables sur le groupe de la famille \a family
62
58
*/
63
59
virtual Ref<IVariableSynchronizer>
64
- createSynchronizer (IParallelMng* pm,IItemFamily* family) =0 ;
60
+ createSynchronizer (IParallelMng* pm, IItemFamily* family) = 0 ;
65
61
66
62
/* !
67
63
* \brief Retourne une interface pour synchroniser des
68
64
* variables sur le groupe \a group.
69
65
*/
70
66
virtual Ref<IVariableSynchronizer>
71
- createSynchronizer (IParallelMng* pm,const ItemGroup& group) =0 ;
67
+ createSynchronizer (IParallelMng* pm, const ItemGroup& group) = 0 ;
72
68
73
69
/* !
74
70
* \brief Créé une instance contenant les infos sur la topologie des rangs de ce gestionnnaire.
75
71
*
76
72
* Cette opération est collective.
77
73
*/
78
74
virtual Ref<IParallelTopology>
79
- createTopology (IParallelMng* pm) =0 ;
75
+ createTopology (IParallelMng* pm) = 0 ;
76
+
77
+ /* !
78
+ * \brief Créé un message de sérialisation non bloquant en envoi au rang \a rank.
79
+ *
80
+ * Le message est traité uniquement lors de l'appel à IParallelMng::processMessages().
81
+ */
82
+ virtual Ref<ISerializeMessage>
83
+ createSendSerializeMessage (IParallelMng* pm, Int32 rank) = 0 ;
84
+
85
+ /* !
86
+ * \brief Créé un message de sérialisation non bloquant en réception du rang \a rank.
87
+ *
88
+ * Le message est traité uniquement lors de l'appel à IParallelMng::processMessages().
89
+ */
90
+ virtual Ref<ISerializeMessage>
91
+ createReceiveSerializeMessage (IParallelMng* pm, Int32 rank) = 0 ;
80
92
};
81
93
82
94
/* ---------------------------------------------------------------------------*/
83
95
/* ---------------------------------------------------------------------------*/
84
96
85
- } // End namespace Arcane::impl
97
+ } // namespace Arcane
86
98
87
99
/* ---------------------------------------------------------------------------*/
88
100
/* ---------------------------------------------------------------------------*/
0 commit comments