Arcane
v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
TiedInterfaceExchanger.h
1
// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2
//-----------------------------------------------------------------------------
3
// Copyright 2000-2022 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
/* TiedInterfaceExchanger.h (C) 2000-2016 */
9
/* */
10
/* Echangeur entre sous-domaines des interfaces liées. */
11
/*---------------------------------------------------------------------------*/
12
#ifndef ARCANE_MESH_TIEDINTERFACEEXCHANGER_H
13
#define ARCANE_MESH_TIEDINTERFACEEXCHANGER_H
14
/*---------------------------------------------------------------------------*/
15
/*---------------------------------------------------------------------------*/
16
17
#include "arcane/utils/TraceAccessor.h"
18
19
#include "arcane/mesh/MeshGlobal.h"
20
21
#include "arcane/ItemInternalVectorView.h"
22
#include "arcane/IItemFamilySerializeStep.h"
23
24
#include <map>
25
26
/*---------------------------------------------------------------------------*/
27
/*---------------------------------------------------------------------------*/
28
29
ARCANE_BEGIN_NAMESPACE
30
31
/*---------------------------------------------------------------------------*/
32
/*---------------------------------------------------------------------------*/
33
34
class
ISubDomain;
35
class
ItemFamilySerializeArgs;
36
37
/*---------------------------------------------------------------------------*/
38
/*---------------------------------------------------------------------------*/
39
40
ARCANE_MESH_BEGIN_NAMESPACE
41
42
/*---------------------------------------------------------------------------*/
43
/*---------------------------------------------------------------------------*/
44
45
class
DynamicMesh;
46
47
/*---------------------------------------------------------------------------*/
48
/*---------------------------------------------------------------------------*/
66
class
TiedInterfaceExchanger
67
:
public
TraceAccessor
68
,
public
IItemFamilySerializeStep
69
{
70
class
OneSubDomainInfo
;
71
class
DeserializedInfo
;
72
73
public
:
74
75
TiedInterfaceExchanger
(DynamicMesh* mesh);
76
~TiedInterfaceExchanger
();
77
78
public
:
79
80
void
initialize()
override
;
81
void
notifyAction
(
const
NotifyActionArgs
&)
override
{}
82
void
serialize(
const
ItemFamilySerializeArgs
& args)
override
;
83
void
finalize()
override
;
84
IItemFamily
* family()
const override
;
85
ePhase
phase
()
const override
{
return
IItemFamilySerializeStep::PH_Item; }
86
87
private
:
88
89
DynamicMesh* m_mesh;
90
ISubDomain
* m_sub_domain;
91
DeserializedInfo* m_deserialized_info;
92
Int32 m_my_rank;
93
typedef
std::map<Int32,OneSubDomainInfo*> SubDomainInfoMap;
94
SubDomainInfoMap m_infos;
95
96
private
:
97
98
inline
OneSubDomainInfo* _getInfo(Int32 rank);
99
};
100
101
/*---------------------------------------------------------------------------*/
102
/*---------------------------------------------------------------------------*/
103
104
/*---------------------------------------------------------------------------*/
105
/*---------------------------------------------------------------------------*/
106
107
/*---------------------------------------------------------------------------*/
108
/*---------------------------------------------------------------------------*/
109
110
ARCANE_MESH_END_NAMESPACE
111
ARCANE_END_NAMESPACE
112
113
/*---------------------------------------------------------------------------*/
114
/*---------------------------------------------------------------------------*/
115
116
#endif
117
Arcane::IItemFamilySerializeStep::NotifyActionArgs
Definition
IItemFamilySerializeStep.h:102
Arcane::IItemFamilySerializeStep
Interface d'une étape de la sérialisation des familles d'entités.
Definition
IItemFamilySerializeStep.h:79
Arcane::IItemFamilySerializeStep::ePhase
ePhase
Phase de la sérialisation.
Definition
IItemFamilySerializeStep.h:83
Arcane::IItemFamily
Interface d'une famille d'entités.
Definition
IItemFamily.h:111
Arcane::ISubDomain
Interface du gestionnaire d'un sous-domaine.
Definition
ISubDomain.h:74
Arcane::ItemFamilySerializeArgs
Arguments des callbacks de sérialisation des familles d'entités.
Definition
ItemFamilySerializeArgs.h:44
Arcane::TiedInterfaceExchanger::DeserializedInfo
Definition
TiedInterfaceExchanger.cc:124
Arcane::TiedInterfaceExchanger::OneSubDomainInfo
Definition
TiedInterfaceExchanger.cc:44
Arcane::TiedInterfaceExchanger
Echangeur entre sous-domaines les interfaces liées.
Definition
TiedInterfaceExchanger.h:69
Arcane::TiedInterfaceExchanger::phase
ePhase phase() const override
Phase de la sérialisation où cette instance intervient.
Definition
TiedInterfaceExchanger.h:85
Arcane::TiedInterfaceExchanger::notifyAction
void notifyAction(const NotifyActionArgs &) override
Notifie l'instance qu'on entre dans une certaine phase de l'échange.
Definition
TiedInterfaceExchanger.h:81
Arccore::TraceAccessor
Classe d'accès aux traces.
Definition
arccore/src/trace/arccore/trace/TraceAccessor.h:39
arcane
mesh
TiedInterfaceExchanger.h
Généré le Lundi 18 Novembre 2024 03:01:41 pour Arcane par
1.9.8