Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
IIncrementalItemConnectivity.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2024 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/* IIncrementalItemConnectivity.h (C) 2000-2024 */
9/* */
10/* Interface de connectivité incrémentale des entités. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CORE_IINCREMENTALITEMCONNECTIVITY_H
13#define ARCANE_CORE_IINCREMENTALITEMCONNECTIVITY_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/utils/ArrayView.h"
18
20#include "arcane/core/IItemConnectivityAccessor.h"
21
22/*---------------------------------------------------------------------------*/
23/*---------------------------------------------------------------------------*/
24
25namespace Arcane
26{
27
28/*---------------------------------------------------------------------------*/
29/*---------------------------------------------------------------------------*/
33class ARCANE_CORE_EXPORT IIncrementalItemSourceConnectivity
34{
36
37 protected:
38
39 virtual ~IIncrementalItemSourceConnectivity() = default;
40
41 public:
42
44 virtual IItemFamily* sourceFamily() const = 0;
45
46 //TODO: utiliser un mécanisme par évènement.
49
51 virtual void notifySourceItemAdded(ItemLocalId item) = 0;
52
65 virtual void reserveMemoryForNbSourceItems(Int32 n, bool pre_alloc_connectivity);
66
68 virtual void notifyReadFromDump() = 0;
69
72
73 private:
74
75 // Interfaces réservées à Arcane
76
78 virtual void _internalNotifySourceItemsAdded(Int32ConstArrayView items);
79};
80
81/*---------------------------------------------------------------------------*/
82/*---------------------------------------------------------------------------*/
86class ARCANE_CORE_EXPORT IIncrementalItemTargetConnectivity
87{
89
90 protected:
91
92 virtual ~IIncrementalItemTargetConnectivity() = default;
93
94 public:
95
96 //TODO: utiliser un mécanisme par évènement.
99
102};
103
104/*---------------------------------------------------------------------------*/
105/*---------------------------------------------------------------------------*/
112class ARCANE_CORE_EXPORT IIncrementalItemConnectivity
116{
118
119 public:
120
121 //TODO rendre 'protected' une fois que tout le monde utilisera le compteur de référence
123
124 public:
125
127 virtual String name() const = 0;
128
131
133 virtual IItemFamily* targetFamily() const = 0;
134
137
152 virtual void setConnectedItems(ItemLocalId source_item, Int32ConstArrayView target_local_ids);
153
156
159
162
165
168
175 virtual Int32 maxNbConnectedItem() const = 0;
176
178 virtual Integer preAllocatedSize() const = 0;
179
181 virtual void setPreAllocatedSize(Integer value) = 0;
182
184 virtual void dumpStats(std::ostream& out) const = 0;
185
188};
189
190/*---------------------------------------------------------------------------*/
191/*---------------------------------------------------------------------------*/
192
193} // End namespace Arcane
194
195/*---------------------------------------------------------------------------*/
196/*---------------------------------------------------------------------------*/
197
198#endif
Déclarations de types sur les entités.
#define ARCCORE_DECLARE_REFERENCE_COUNTED_INCLASS_METHODS()
Macro pour déclarer les méthodes virtuelles gérant les compteurs de référence.
API interne à Arcane de IIncrementalItemConnectivity.
Interface pour gérer une connectivité incrémentale.
virtual bool hasConnectedItem(ItemLocalId source_item, ItemLocalId target_local_id) const =0
Test l'existence d'un connectivité entre source_item et l'entité de localId() target_local_id.
virtual void replaceConnectedItem(ItemLocalId source_item, Integer index, ItemLocalId target_local_id)=0
Remplace l'entité d'index index de source_item par l'entité de localId() target_local_id.
virtual String name() const =0
Nom de la connectivité
virtual void dumpStats(std::ostream &out) const =0
Sort sur le flot out des statistiques sur l'utilisation et la mémoire utilisée.
virtual ConstArrayView< IItemFamily * > families() const =0
Liste des familles (sourceFamily() + targetFamily())
virtual void replaceConnectedItems(ItemLocalId source_item, Int32ConstArrayView target_local_ids)=0
Remplace les entités de source_item par les entités de localId() target_local_ids.
virtual void removeConnectedItems(ItemLocalId source_item)=0
Supprime toute les entités connectées à source_item.
virtual void removeConnectedItem(ItemLocalId source_item, ItemLocalId target_local_id)=0
Supprime l'entité de localId() target_local_id à la connectivité de source_item.
virtual void addConnectedItem(ItemLocalId source_item, ItemLocalId target_local_id)=0
Ajoute l'entité de localId() target_local_id à la connectivité de source_item.
virtual IItemFamily * targetFamily() const =0
Famille cible.
virtual IIncrementalItemConnectivityInternal * _internalApi()=0
API interne à Arcane.
virtual Int32 maxNbConnectedItem() const =0
Nombre maximum d'entités connectées à une entité source.
virtual void setPreAllocatedSize(Integer value)=0
Positionne le nombre d'entités à pré-allouer pour la connectivité de chaque entité
virtual Integer preAllocatedSize() const =0
Nombre d'entités pré-alloués pour la connectivité de chaque entité
Interface de la source d'une connectivité incrémentale.
virtual void notifyReadFromDump()=0
Notifie la connectivité qu'on a effectué une relecture à partir d'une protection.
virtual IItemFamily * sourceFamily() const =0
Famille source.
virtual void notifySourceFamilyLocalIdChanged(Int32ConstArrayView new_to_old_ids)=0
Notifie la connectivité que la famille source est compactée.
virtual void notifySourceItemAdded(ItemLocalId item)=0
Notifie la connectivité qu'une entité a été ajoutée à la famille source.
virtual Ref< IIncrementalItemSourceConnectivity > toSourceReference()=0
Retourne une référence sur l'instance.
Interface de la cible d'une connectivité incrémentale.
virtual void notifyTargetFamilyLocalIdChanged(Int32ConstArrayView old_to_new_ids)=0
Notifie la connectivité que la famille cible est compactée.
virtual Ref< IIncrementalItemTargetConnectivity > toTargetReference()=0
Retourne une référence sur l'instance.
Interface pour gérer l'accès à une connectivité.
Interface d'une famille d'entités.
Index d'un Item dans une variable.
Definition ItemLocalId.h:40
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:120
Vue constante d'un tableau de type T.
Chaîne de caractères unicode.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-