Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
IDataSynchronizeDispatcher.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2023 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/* DataSynchronizeDispatcher.h (C) 2000-2023 */
9/* */
10/* Gestion de la synchronisation d'une instance de 'IData'. */
11/*---------------------------------------------------------------------------*/
12/*---------------------------------------------------------------------------*/
13#ifndef ARCANE_IMPL_INTERNAL_VARIABLESYNCHRONIZERDISPATCHER_H
14#define ARCANE_IMPL_INTERNAL_VARIABLESYNCHRONIZERDISPATCHER_H
15/*---------------------------------------------------------------------------*/
16/*---------------------------------------------------------------------------*/
17
18#include "arcane/utils/UniqueArray.h"
19#include "arcane/utils/Ref.h"
21
24#include "arcane/core/VariableCollection.h"
25
26#include "arcane/impl/IDataSynchronizeImplementation.h"
27
28/*---------------------------------------------------------------------------*/
29/*---------------------------------------------------------------------------*/
30
31namespace Arcane
32{
33
34/*---------------------------------------------------------------------------*/
35/*---------------------------------------------------------------------------*/
36
37class MemoryBuffer;
38class DataSynchronizeResult;
39class IVariableSynchronizerDispatcher;
40class INumericDataInternal;
41class IBufferCopier;
42
43/*---------------------------------------------------------------------------*/
44/*---------------------------------------------------------------------------*/
48class ARCANE_IMPL_EXPORT DataSynchronizeDispatcherBuildInfo
49{
50 public:
51
56 : m_parallel_mng(pm)
57 , m_synchronize_implementation(sync_impl)
58 , m_synchronize_info(sync_info)
59 , m_buffer_copier(copier)
60 {}
61
62 public:
63
64 IParallelMng* parallelMng() const { return m_parallel_mng; }
65 Ref<IDataSynchronizeImplementation> synchronizeImplementation() const { return m_synchronize_implementation; }
66 Ref<DataSynchronizeInfo> synchronizeInfo() const { return m_synchronize_info; }
67 Ref<IBufferCopier> bufferCopier() const { return m_buffer_copier; }
68
69 private:
70
71 IParallelMng* m_parallel_mng = nullptr;
72 Ref<IDataSynchronizeImplementation> m_synchronize_implementation;
73 Ref<DataSynchronizeInfo> m_synchronize_info;
74 Ref<IBufferCopier> m_buffer_copier;
75};
76
77/*---------------------------------------------------------------------------*/
78/*---------------------------------------------------------------------------*/
89class ARCANE_IMPL_EXPORT IDataSynchronizeDispatcher
90{
92
93 protected:
94
95 virtual ~IDataSynchronizeDispatcher() = default;
96
97 public:
98
103 virtual void compute() = 0;
104
112
117
124
125 public:
126
129};
130
131/*---------------------------------------------------------------------------*/
132/*---------------------------------------------------------------------------*/
137class ARCANE_IMPL_EXPORT IDataSynchronizeMultiDispatcher
138{
139 public:
140
141 virtual ~IDataSynchronizeMultiDispatcher() = default;
142
143 public:
144
149 virtual void compute() = 0;
156 virtual void synchronize(ConstArrayView<IVariable*> vars) = 0;
157
158 public:
159
161};
162
163/*---------------------------------------------------------------------------*/
164/*---------------------------------------------------------------------------*/
165
166} // namespace Arcane
167
168/*---------------------------------------------------------------------------*/
169/*---------------------------------------------------------------------------*/
170
171#endif
Déclarations des types généraux de Arcane.
Fichier contenant les déclarations concernant le modèle de programmation par échange de message.
#define ARCCORE_DECLARE_REFERENCE_COUNTED_INCLASS_METHODS()
Macro pour déclarer les méthodes virtuelles gérant les compteurs de référence.
Infos pour construire un DataSynchronizeDispatcher.
Informations sur le résultat d'une synchronisation.
Interface pour gérer la synchronisation d'une donnée.
virtual void compute()=0
Recalcule les informations nécessaires après une mise à jour des informations de DataSynchronizeInfo.
virtual void beginSynchronize(INumericDataInternal *data, bool is_compare_sync)=0
Commence l'exécution pour la synchronisation pour la donnée data.
virtual DataSynchronizeResult endSynchronize()=0
Termine la synchronisation.
virtual void setSynchronizeBuffer(Ref< MemoryBuffer > buffer)=0
Positionne le buffer de synchronisation.
Interface de la synchronisation d'une liste de variables.
virtual void setSynchronizeBuffer(Ref< MemoryBuffer > buffer)=0
Positionne le buffer de synchronisation.
virtual void compute()=0
Recalcule les informations nécessaires après une mise à jour des informations de DataSynchronizeInfo.
Interface pour un 'IData' d'un type numérique.
Interface du gestionnaire de parallélisme pour un sous-domaine.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:120
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
Represents an in-memory output byte stream.