Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
IDataSynchronizeImplementation.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/* IDataSynchronizeImplementation.h (C) 2000-2023 */
9/* */
10/* Interface pour l'implémentation d'une synchronisation de variables. */
11/*---------------------------------------------------------------------------*/
12/*---------------------------------------------------------------------------*/
13#ifndef ARCANE_IMPL_IDATASYNCHRONIZEIMPLEMENTATION_H
14#define ARCANE_IMPL_IDATASYNCHRONIZEIMPLEMENTATION_H
15/*---------------------------------------------------------------------------*/
16/*---------------------------------------------------------------------------*/
17
18#include "arcane/utils/Ref.h"
19
20/*---------------------------------------------------------------------------*/
21/*---------------------------------------------------------------------------*/
22
23namespace Arcane
24{
25class IDataSynchronizeBuffer;
26class IParallelMng;
27class DataSynchronizeInfo;
28
29/*---------------------------------------------------------------------------*/
30/*---------------------------------------------------------------------------*/
31
32class IDataSynchronizeImplementation;
33class IDataSynchronizeImplementationFactory;
34class AbstractDataSynchronizeImplementation;
35
36using IGenericVariableSynchronizerDispatcher
37ARCANE_DEPRECATED_REASON("Use 'IDataSynchronizeImplementation' instead") = IDataSynchronizeImplementation;
38
39using IGenericVariableSynchronizerDispatcherFactory
40ARCANE_DEPRECATED_REASON("Use 'IDataSynchronizeImplementationFactory' instead") = IDataSynchronizeImplementationFactory;
41
42using AbstractGenericVariableSynchronizerDispatcher
43ARCANE_DEPRECATED_REASON("Use 'AbstractDataSynchronizeImplementation' instead") = AbstractDataSynchronizeImplementation;
44
45using ItemGroupSynchronizeInfo
46ARCANE_DEPRECATED_REASON("Use 'DataSynchronizeInfo' instead") = DataSynchronizeInfo;
47
48/*---------------------------------------------------------------------------*/
49/*---------------------------------------------------------------------------*/
53class ARCANE_IMPL_EXPORT IDataSynchronizeImplementation
54{
55 public:
56
57 virtual ~IDataSynchronizeImplementation() = default;
58
59 public:
60
61 virtual void setDataSynchronizeInfo(DataSynchronizeInfo* sync_info) = 0;
62 virtual void compute() = 0;
63 virtual void beginSynchronize(IDataSynchronizeBuffer* buf) = 0;
64 virtual void endSynchronize(IDataSynchronizeBuffer* buf) = 0;
65};
66
67/*---------------------------------------------------------------------------*/
68/*---------------------------------------------------------------------------*/
73{
74 public:
75
77
78 public:
79
80 virtual Ref<IDataSynchronizeImplementation> createInstance() = 0;
81};
82
83/*---------------------------------------------------------------------------*/
84/*---------------------------------------------------------------------------*/
85/*
86 * \brief Classe de base abstraite pour les implémentations génériques.
87 *
88 * Elle permet de conserver les informations sur le groupe à synchroniser.
89 */
92{
93 public:
94
95 void setDataSynchronizeInfo(DataSynchronizeInfo* sync_info) final { m_sync_info = sync_info; }
96
97 protected:
98
99 DataSynchronizeInfo* _syncInfo() const { return m_sync_info; }
100
101 private:
102
103 DataSynchronizeInfo* m_sync_info = nullptr;
104};
105
106/*---------------------------------------------------------------------------*/
107/*---------------------------------------------------------------------------*/
108
109} // namespace Arcane
110
111/*---------------------------------------------------------------------------*/
112/*---------------------------------------------------------------------------*/
113
114#endif
Informations nécessaires pour synchroniser les entités sur un groupe.
Buffer générique pour la synchronisation de données.
Interface d'une fabrique dispatcher générique.
Interface d'un dispatcher générique.
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 -*-