Arcane  4.1.12.0
User documentation
Loading...
Searching...
No Matches
IItemConnectivityMng.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2026 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 for the entity connectivity manager. */
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 /** Class destructor */
34 virtual ~IItemConnectivityMng() = default;
35
36 public:
37
38 //! Registering a connectivity
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 Creation of a synchronization object for a connectivity.
47 *
48 * If the method has already been called for this connectivity,
49 * a new synchronizer is created and the previous one is destroyed.
50 */
52 IItemConnectivityGhostPolicy* connectivity_ghost_policy) = 0;
53 virtual IItemConnectivitySynchronizer* getSynchronizer(IItemConnectivity* connectivity) = 0;
54
55 //! Registering modifications of an item family
56 virtual void setModifiedItems(IItemFamily* family,
57 Int32ConstArrayView added_items,
58 Int32ConstArrayView removed_items) = 0;
59
60 //! Retrieval of modified items to update a connectivity
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 if the connectivity is up to date
76 virtual bool isUpToDate(IItemConnectivity* connectivity) = 0; //! relative to the source family and the target family
77 virtual bool isUpToDateWithSourceFamily(IItemConnectivity* connectivity) = 0; //! relative to the source family
78 virtual bool isUpToDateWithTargetFamily(IItemConnectivity* connectivity) = 0; //! relative to the target family
79
80 //! Registers the connectivity as up to date relative to both families (source and target)
81 virtual void setUpToDate(IItemConnectivity* connectivity) = 0;
82
83 //! Test if the connectivity is up to date
84 virtual bool isUpToDate(IIncrementalItemConnectivity* connectivity) = 0; //! relative to the source family and the target family
85 virtual bool isUpToDateWithSourceFamily(IIncrementalItemConnectivity* connectivity) = 0; //! relative to the source family
86 virtual bool isUpToDateWithTargetFamily(IIncrementalItemConnectivity* connectivity) = 0; //! relative to the target family
87
88 //! Registers the connectivity as up to date relative to both families (source and target)
89 virtual void setUpToDate(IIncrementalItemConnectivity* connectivity) = 0;
90
91 //! Update of modified items, possibly compacted
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
Arcane configuration file.
Declarations of types used in Arcane.
Interface for managing an incremental connectivity.
virtual void notifyLocalIdChanged(IItemFamily *item_family, Int32ConstArrayView old_to_new_ids, Integer nb_item)=0
Update of modified items, possibly compacted.
virtual void setUpToDate(IIncrementalItemConnectivity *connectivity)=0
relative to the target family
virtual void setModifiedItems(IItemFamily *family, Int32ConstArrayView added_items, Int32ConstArrayView removed_items)=0
Registering modifications of an item family.
virtual bool isUpToDateWithSourceFamily(IItemConnectivity *connectivity)=0
relative to the source family and the target family
virtual void setUpToDate(IItemConnectivity *connectivity)=0
relative to the target family
virtual ~IItemConnectivityMng()=default
virtual bool isUpToDateWithTargetFamily(IIncrementalItemConnectivity *connectivity)=0
relative to the source family
virtual IItemConnectivitySynchronizer * createSynchronizer(IItemConnectivity *connectivity, IItemConnectivityGhostPolicy *connectivity_ghost_policy)=0
Creation of a synchronization object for a connectivity.
virtual bool isUpToDateWithTargetFamily(IItemConnectivity *connectivity)=0
relative to the source family
virtual void getSourceFamilyModifiedItems(IItemConnectivity *connectivity, Int32ArrayView &added_items, Int32ArrayView &removed_items)=0
Retrieval of modified items to update a connectivity.
virtual bool isUpToDate(IIncrementalItemConnectivity *connectivity)=0
Test if the connectivity is up to date.
virtual bool isUpToDateWithSourceFamily(IIncrementalItemConnectivity *connectivity)=0
relative to the source family and the target family
virtual bool isUpToDate(IItemConnectivity *connectivity)=0
Test if the connectivity is up to date.
virtual void registerConnectivity(IItemConnectivity *connectivity)=0
Registering a connectivity.
Interface to manage connectivity.
Interface of an entity family.
Definition IItemFamily.h:83
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --
Int32 Integer
Type representing an integer.
ConstArrayView< Int32 > Int32ConstArrayView
C equivalent of a 1D array of 32-bit integers.
Definition UtilsTypes.h:482
ArrayView< Int32 > Int32ArrayView
C equivalent of a 1D array of 32-bit integers.
Definition UtilsTypes.h:453