Arcane  v3.16.4.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
IItemConnectivityMng.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2025 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/* IItemConnectivityMng.h (C) 2000-2025 */
9/* */
10/* Interface du gestionnaire de connectivité des entités. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CORE_IITEMCONNECTIVITYMNG_H
13#define ARCANE_CORE_IITEMCONNECTIVITYMNG_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
19
20/*---------------------------------------------------------------------------*/
21/*---------------------------------------------------------------------------*/
22
23namespace Arcane
24{
25
26/*---------------------------------------------------------------------------*/
27/*---------------------------------------------------------------------------*/
28
29class ARCANE_CORE_EXPORT IItemConnectivityMng
30{
31 public:
32
33 /** Destructeur de la classe */
34 virtual ~IItemConnectivityMng() = default;
35
36 public:
37
38 //! Enregistrement d'une connectivité
39 virtual void registerConnectivity(IItemConnectivity* connectivity) = 0;
40 virtual void unregisterConnectivity(IItemConnectivity* connectivity) = 0;
41
42 virtual void registerConnectivity(IIncrementalItemConnectivity* connectivity) = 0;
43 virtual void unregisterConnectivity(IIncrementalItemConnectivity* connectivity) = 0;
44
45 /*!
46 * \brief Création d'un objet de synchronisation pour une connectivité.
47 *
48 * Si la méthode a déjà été appelée pour cette connectivité,
49 * un nouveau synchroniseur est créé et le précedent est détruit.
50 */
52 IItemConnectivityGhostPolicy* connectivity_ghost_policy) = 0;
53 virtual IItemConnectivitySynchronizer* getSynchronizer(IItemConnectivity* connectivity) = 0;
54
55 //! Enregistrement de modifications d'une famille d'items
56 virtual void setModifiedItems(IItemFamily* family,
57 Int32ConstArrayView added_items,
58 Int32ConstArrayView removed_items) = 0;
59
60 //! Récupération des items modifiés pour mettre à jour une connectivité
62 Int32ArrayView& added_items,
63 Int32ArrayView& removed_items) = 0;
64 virtual void getTargetFamilyModifiedItems(IItemConnectivity* connectivity,
65 Int32ArrayView& added_items,
66 Int32ArrayView& removed_items) = 0;
67
69 Int32ArrayView& added_items,
70 Int32ArrayView& removed_items) = 0;
71 virtual void getTargetFamilyModifiedItems(IIncrementalItemConnectivity* connectivity,
72 Int32ArrayView& added_items,
73 Int32ArrayView& removed_items) = 0;
74
75 //! Test si la connectivité est à jour
76 virtual bool isUpToDate(IItemConnectivity* connectivity) = 0; //! par rapport à la famille source et à la famille target
77 virtual bool isUpToDateWithSourceFamily(IItemConnectivity* connectivity) = 0; //! par rapport à la famille source
78 virtual bool isUpToDateWithTargetFamily(IItemConnectivity* connectivity) = 0; //! par rapport à la famille target
79
80 //! Enregistre la connectivité comme mise à jour par rapport aux deux familles (source et target)
81 virtual void setUpToDate(IItemConnectivity* connectivity) = 0;
82
83 //! Test si la connectivité est à jour
84 virtual bool isUpToDate(IIncrementalItemConnectivity* connectivity) = 0; //! par rapport à la famille source et à la famille target
85 virtual bool isUpToDateWithSourceFamily(IIncrementalItemConnectivity* connectivity) = 0; //! par rapport à la famille source
86 virtual bool isUpToDateWithTargetFamily(IIncrementalItemConnectivity* connectivity) = 0; //! par rapport à la famille target
87
88 //! Enregistre la connectivité comme mise à jour par rapport aux deux familles (source et target)
89 virtual void setUpToDate(IIncrementalItemConnectivity* connectivity) = 0;
90
91 //! Mise à jour des items modifiés éventuellement compactés
92 virtual void notifyLocalIdChanged(IItemFamily* item_family,
93 Int32ConstArrayView old_to_new_ids,
94 Integer nb_item) = 0;
95};
96
97/*---------------------------------------------------------------------------*/
98/*---------------------------------------------------------------------------*/
99
100} // namespace Arcane
101
102/*---------------------------------------------------------------------------*/
103/*---------------------------------------------------------------------------*/
104
105#endif /* ICONNECTIVITYMANAGER_H_ */
Fichier de configuration d'Arcane.
Déclarations des types utilisés dans Arcane.
Interface pour gérer une connectivité incrémentale.
virtual void notifyLocalIdChanged(IItemFamily *item_family, Int32ConstArrayView old_to_new_ids, Integer nb_item)=0
Mise à jour des items modifiés éventuellement compactés.
virtual void setUpToDate(IIncrementalItemConnectivity *connectivity)=0
par rapport à la famille target
virtual void setModifiedItems(IItemFamily *family, Int32ConstArrayView added_items, Int32ConstArrayView removed_items)=0
Enregistrement de modifications d'une famille d'items.
virtual bool isUpToDateWithSourceFamily(IItemConnectivity *connectivity)=0
par rapport à la famille source et à la famille target
virtual void setUpToDate(IItemConnectivity *connectivity)=0
par rapport à la famille target
virtual ~IItemConnectivityMng()=default
virtual bool isUpToDateWithTargetFamily(IIncrementalItemConnectivity *connectivity)=0
par rapport à la famille source
virtual IItemConnectivitySynchronizer * createSynchronizer(IItemConnectivity *connectivity, IItemConnectivityGhostPolicy *connectivity_ghost_policy)=0
Création d'un objet de synchronisation pour une connectivité.
virtual bool isUpToDateWithTargetFamily(IItemConnectivity *connectivity)=0
par rapport à la famille source
virtual void getSourceFamilyModifiedItems(IItemConnectivity *connectivity, Int32ArrayView &added_items, Int32ArrayView &removed_items)=0
Récupération des items modifiés pour mettre à jour une connectivité
virtual bool isUpToDate(IIncrementalItemConnectivity *connectivity)=0
Test si la connectivité est à jour.
virtual bool isUpToDateWithSourceFamily(IIncrementalItemConnectivity *connectivity)=0
par rapport à la famille source et à la famille target
virtual bool isUpToDate(IItemConnectivity *connectivity)=0
Test si la connectivité est à jour.
virtual void registerConnectivity(IItemConnectivity *connectivity)=0
Enregistrement d'une connectivité
Interface pour gérer une connectivité.
Interface d'une famille d'entités.
Definition IItemFamily.h:84
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
Int32 Integer
Type représentant un entier.
ConstArrayView< Int32 > Int32ConstArrayView
Equivalent C d'un tableau à une dimension d'entiers 32 bits.
Definition UtilsTypes.h:569
ArrayView< Int32 > Int32ArrayView
Equivalent C d'un tableau à une dimension d'entiers 32 bits.
Definition UtilsTypes.h:540