Skip to content

Commit 6d2b9fb

Browse files
Merge pull request #1192 from arcaneframework/dev/gg-continue-removing-usage-of-componentiteminternal
Continue removing usage of 'ComponentItemInternal'
2 parents 031e8da + 1d00ba8 commit 6d2b9fb

19 files changed

+244
-222
lines changed

arcane/ceapart/src/arcane/tests/MeshMaterialTesterModule.cc

+7-8
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
22
//-----------------------------------------------------------------------------
3-
// Copyright 2000-2023 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
3+
// Copyright 2000-2024 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
44
// See the top-level COPYRIGHT file for details.
55
// SPDX-License-Identifier: Apache-2.0
66
//-----------------------------------------------------------------------------
77
/*---------------------------------------------------------------------------*/
8-
/* MeshMaterialTesterModule.cc (C) 2000-2023 */
8+
/* MeshMaterialTesterModule.cc (C) 2000-2024 */
99
/* */
1010
/* Module de test du gestionnaire des matériaux. */
1111
/*---------------------------------------------------------------------------*/
@@ -1113,10 +1113,8 @@ _checkVectorCopy(VectorType& vec_cells)
11131113
// Normalement il s'agit d'une copie par référence donc les vues associées
11141114
// pointent vers la même zone mémoire.
11151115
VectorType vec_cells_copy(vec_cells);
1116-
vc.areEqual(vec_cells_copy.view()._matvarIndexes().data(),
1117-
vec_cells.view()._matvarIndexes().data(),"bad copy 1");
1118-
vc.areEqual(vec_cells_copy.view()._itemsInternalView().data(),
1119-
vec_cells.view()._itemsInternalView().data(),"bad copy 1");
1116+
if (!vec_cells_copy.view()._isSamePointerData(vec_cells.view()))
1117+
ARCANE_FATAL("Bad copy");
11201118

11211119
VectorType vec_cells_copy2(vec_cells);
11221120
vc.areEqual(vec_cells_copy2.view()._matvarIndexes(),vec_cells.view()._matvarIndexes(),"bad copy 2");
@@ -1129,10 +1127,11 @@ _checkVectorCopy(VectorType& vec_cells)
11291127
// A la sortie les valeurs des index doivent être les mêmes mais pas les pointeurs.
11301128
VectorType clone_vec(vec_cells_copy.clone());
11311129
vc.areEqual(clone_vec.view()._matvarIndexes(),vec_cells.view()._matvarIndexes(),"bad clone 1");
1132-
vc.areEqual(clone_vec.view()._itemsInternalView(),vec_cells.view()._itemsInternalView(),"bad clone 2");
1130+
if (clone_vec.view()._constituentItemListView() != vec_cells.view()._constituentItemListView())
1131+
ARCANE_FATAL("Bad clone 2");
11331132
if (clone_vec.view()._matvarIndexes().data()==vec_cells.view()._matvarIndexes().data())
11341133
ARCANE_FATAL("bad clone 3");
1135-
if (clone_vec.view()._itemsInternalView().data()==vec_cells.view()._itemsInternalView().data())
1134+
if (clone_vec.view()._isSamePointerData(vec_cells.view()))
11361135
ARCANE_FATAL("bad clone 3");
11371136
}
11381137
}

arcane/src/arcane/core/materials/ComponentItem.h

+2-13
Original file line numberDiff line numberDiff line change
@@ -69,13 +69,6 @@ class ARCANE_CORE_EXPORT ComponentCell
6969
: m_internal(ComponentItemInternal::_nullItem())
7070
{}
7171

72-
protected:
73-
74-
ARCANE_DEPRECATED_REASON("Y2023: This method is internal to Arcane. Use overload with ConstituentItemBase instead")
75-
ARCCORE_HOST_DEVICE ComponentCell(ComponentItemInternal* mii)
76-
: m_internal(mii)
77-
{}
78-
7972
public:
8073

8174
//! Opérateur de conversion vers un ComponentItemLocalId
@@ -122,12 +115,6 @@ class ARCANE_CORE_EXPORT ComponentCell
122115
*/
123116
Int64 componentUniqueId() const { return m_internal->componentUniqueId(); }
124117

125-
public:
126-
127-
//! \internal
128-
ARCANE_DEPRECATED_REASON("Y2023: This method is internal to Arcane. Use constituentItemBase() instead")
129-
ARCCORE_HOST_DEVICE ComponentItemInternal* internal() const { return m_internal; }
130-
131118
protected:
132119

133120
static ARCCORE_HOST_DEVICE void _checkLevel([[maybe_unused]] ComponentItemInternal* internal,
@@ -150,10 +137,12 @@ class ARCANE_CORE_EXPORT ComponentCell
150137
private:
151138

152139
//! \internal
140+
// TODO: rendre obsolète
153141
ARCCORE_HOST_DEVICE ComponentItemInternal* _internal() const
154142
{
155143
return m_internal;
156144
}
145+
157146
//! \internal
158147
ARCCORE_HOST_DEVICE ComponentItemInternalLocalId _internalLocalId() const
159148
{

arcane/src/arcane/core/materials/ComponentItemInternal.cc

+9-2
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
22
//-----------------------------------------------------------------------------
3-
// Copyright 2000-2023 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
3+
// Copyright 2000-2024 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
44
// See the top-level COPYRIGHT file for details.
55
// SPDX-License-Identifier: Apache-2.0
66
//-----------------------------------------------------------------------------
77
/*---------------------------------------------------------------------------*/
8-
/* ComponentItemInternal.cc (C) 2000-2023 */
8+
/* ComponentItemInternal.cc (C) 2000-2024 */
99
/* */
1010
/* Partie interne d'une maille matériau ou milieu. */
1111
/*---------------------------------------------------------------------------*/
@@ -38,6 +38,13 @@ _throwBadCast(Int32 v)
3838
throw BadCastException(A_FUNCINFO,String::format("Can not cast v={0} to type 'Int16'",v));
3939
}
4040

41+
std::ostream&
42+
operator<<(std::ostream& o,const ComponentItemInternalLocalId& id)
43+
{
44+
o << id.localId();
45+
return o;
46+
}
47+
4148
/*---------------------------------------------------------------------------*/
4249
/*---------------------------------------------------------------------------*/
4350

arcane/src/arcane/core/materials/ComponentItemInternal.h

+44-1
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,18 @@ class ARCANE_CORE_EXPORT ComponentItemInternalLocalId
3838
: m_id(id)
3939
{}
4040
ARCCORE_HOST_DEVICE Int32 localId() const { return m_id; }
41+
ARCCORE_HOST_DEVICE friend bool operator==(ComponentItemInternalLocalId a,
42+
ComponentItemInternalLocalId b)
43+
{
44+
return a.m_id == b.m_id;
45+
}
46+
ARCCORE_HOST_DEVICE friend bool operator!=(ComponentItemInternalLocalId a,
47+
ComponentItemInternalLocalId b)
48+
{
49+
return a.m_id != b.m_id;
50+
}
51+
ARCANE_CORE_EXPORT friend std::ostream&
52+
operator<<(std::ostream& o,const ComponentItemInternalLocalId& id);
4153

4254
private:
4355

@@ -360,9 +372,14 @@ class ARCANE_CORE_EXPORT ConstituentItemLocalIdListView
360372
{
361373
friend class ConstituentItemLocalIdList;
362374
friend class ComponentItemVectorView;
375+
friend class MeshComponentPartData;
376+
friend class ComponentPartItemVectorView;
377+
friend class ComponentPartCellEnumerator;
378+
friend class ComponentCellEnumerator;
363379

364380
private:
365381

382+
ConstituentItemLocalIdListView() = default;
366383
ConstituentItemLocalIdListView(ComponentItemSharedInfo* shared_info,
367384
ConstArrayView<ComponentItemInternalLocalId> ids,
368385
ConstArrayView<ComponentItemInternal*> items_internal)
@@ -374,10 +391,36 @@ class ARCANE_CORE_EXPORT ConstituentItemLocalIdListView
374391

375392
private:
376393

377-
ConstArrayView<ComponentItemInternal*> _itemsInternal() const { return m_items_internal; }
394+
matimpl::ConstituentItemBase _constituenItemBase(Int32 index) const { return matimpl::ConstituentItemBase(m_items_internal[index]); }
395+
MatVarIndex _matVarIndex(Int32 index) const { return m_items_internal[index]->variableIndex(); }
396+
ConstituentItemLocalIdListView _subView(Int32 begin, Int32 size) const
397+
{
398+
return { m_component_shared_info, m_ids.subView(begin, size), m_items_internal.subView(begin, size) };
399+
}
400+
//! Pour les tests, vérifie que les vues pointent vers les mêmes données
401+
bool _isSamePointerData(const ConstituentItemLocalIdListView& rhs) const
402+
{
403+
return (m_ids.data() == rhs.m_ids.data()) && (m_items_internal.data() == rhs.m_items_internal.data());
404+
}
405+
friend bool operator==(const ConstituentItemLocalIdListView& a,
406+
const ConstituentItemLocalIdListView& b)
407+
{
408+
bool t1 = a.m_component_shared_info == b.m_component_shared_info;
409+
bool t2 = a.m_ids == b.m_ids;
410+
bool t3 = a.m_items_internal == b.m_items_internal;
411+
return (t1 && t2 && t3);
412+
}
413+
friend bool operator!=(const ConstituentItemLocalIdListView& a,
414+
const ConstituentItemLocalIdListView& b)
415+
{
416+
return (!(a == b));
417+
}
378418

379419
private:
380420

421+
// NOTE: Cette classe est wrappé directement en C#.
422+
// Si on modifie les champs de cette classe il faut modifier le type correspondant
423+
// dans le wrappeur.
381424
ComponentItemSharedInfo* m_component_shared_info = nullptr;
382425
ConstArrayView<ComponentItemInternalLocalId> m_ids;
383426
ConstArrayView<ComponentItemInternal*> m_items_internal;

arcane/src/arcane/core/materials/ComponentItemVector.cc

+3-3
Original file line numberDiff line numberDiff line change
@@ -47,11 +47,11 @@ Impl(IMeshComponent* component)
4747
/*---------------------------------------------------------------------------*/
4848

4949
ComponentItemVector::Impl::
50-
Impl(IMeshComponent* component, ConstArrayView<ComponentItemInternal*> items_internal,
50+
Impl(IMeshComponent* component, const ConstituentItemLocalIdListView& constituent_list_view,
5151
ConstArrayView<MatVarIndex> matvar_indexes, ConstArrayView<Int32> items_local_id)
5252
: Impl(component)
5353
{
54-
m_constituent_list->deprecatedCopy(items_internal);
54+
m_constituent_list->copy(constituent_list_view);
5555
m_matvar_indexes.copy(matvar_indexes);
5656
m_items_local_id.copy(items_local_id);
5757
m_part_data->_setFromMatVarIndexes(matvar_indexes);
@@ -83,7 +83,7 @@ ComponentItemVector(IMeshComponent* component)
8383

8484
ComponentItemVector::
8585
ComponentItemVector(ComponentItemVectorView rhs)
86-
: m_p(new Impl(rhs.component(), rhs._itemsInternalView(),
86+
: m_p(new Impl(rhs.component(), rhs._constituentItemListView(),
8787
rhs._matvarIndexes(), rhs._internalLocalIds()))
8888
{
8989
}

arcane/src/arcane/core/materials/ComponentItemVector.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ class ARCANE_CORE_EXPORT ComponentItemVector
6464
public:
6565

6666
Impl(IMeshComponent* component);
67-
Impl(IMeshComponent* component, ConstArrayView<ComponentItemInternal*> items_internal,
67+
Impl(IMeshComponent* component, const ConstituentItemLocalIdListView& constituent_list_view,
6868
ConstArrayView<MatVarIndex> matvar_indexes, ConstArrayView<Int32> items_local_id);
6969

7070
private:

arcane/src/arcane/core/materials/ComponentItemVectorView.cc

+6-6
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
22
//-----------------------------------------------------------------------------
3-
// Copyright 2000-2023 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
3+
// Copyright 2000-2024 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
44
// See the top-level COPYRIGHT file for details.
55
// SPDX-License-Identifier: Apache-2.0
66
//-----------------------------------------------------------------------------
77
/*---------------------------------------------------------------------------*/
8-
/* ComponentItemVectorView.cc (C) 2000-2023 */
8+
/* ComponentItemVectorView.cc (C) 2000-2024 */
99
/* */
1010
/* Vue sur un vecteur sur des entités composants. */
1111
/*---------------------------------------------------------------------------*/
@@ -64,11 +64,11 @@ _subView(Integer begin,Integer size)
6464
ARCANE_THROW(ArgumentException,"Bad 'begin' value '{0}' total={1}",begin,nb_total);
6565
}
6666

67-
ConstArrayView<ComponentItemInternal*> mn = m_items_internal_main_view.subView(begin,size);
67+
ConstituentItemLocalIdListView mn = m_constituent_list_view._subView(begin, size);
6868
ConstArrayView<MatVarIndex> mvs = _matvarIndexes().subView(begin,size);
6969
ConstArrayView<Int32> ids = _internalLocalIds().subView(begin,size);
7070

71-
return ComponentItemVectorView(m_component,mvs,mn,ids);
71+
return { m_component, mvs, mn, ids };
7272
}
7373

7474
/*---------------------------------------------------------------------------*/
@@ -77,7 +77,7 @@ _subView(Integer begin,Integer size)
7777
MatItemVectorView MatItemVectorView::
7878
_subView(Integer begin,Integer size)
7979
{
80-
return MatItemVectorView(component(),ComponentItemVectorView::_subView(begin,size));
80+
return { component(), ComponentItemVectorView::_subView(begin, size) };
8181
}
8282

8383
/*---------------------------------------------------------------------------*/
@@ -86,7 +86,7 @@ _subView(Integer begin,Integer size)
8686
EnvItemVectorView EnvItemVectorView::
8787
_subView(Integer begin,Integer size)
8888
{
89-
return EnvItemVectorView(component(),ComponentItemVectorView::_subView(begin,size));
89+
return { component(), ComponentItemVectorView::_subView(begin, size) };
9090
}
9191

9292
/*---------------------------------------------------------------------------*/

arcane/src/arcane/core/materials/ComponentItemVectorView.h

+12-51
Original file line numberDiff line numberDiff line change
@@ -68,26 +68,13 @@ class ARCANE_CORE_EXPORT ComponentItemVectorView
6868

6969
protected:
7070

71-
//! Construit un vecteur contenant les entités de \a group pour le composant \a component
72-
ARCANE_DEPRECATED_REASON("Use overload with ConstituentItemLocalIdListView instead")
73-
ComponentItemVectorView(IMeshComponent* component,
74-
ConstArrayView<MatVarIndex> mvi,
75-
ConstArrayView<ComponentItemInternal*> mv,
76-
ConstArrayView<Int32> local_ids)
77-
: m_matvar_indexes_view(mvi)
78-
, m_items_internal_main_view(mv)
79-
, m_items_local_id_view(local_ids)
80-
, m_component(component)
81-
{
82-
}
83-
8471
//! Construit un vecteur contenant les entités de \a group pour le composant \a component
8572
ComponentItemVectorView(IMeshComponent* component,
8673
ConstArrayView<MatVarIndex> mvi,
8774
ConstituentItemLocalIdListView constituent_local_ids,
8875
ConstArrayView<Int32> local_ids)
8976
: m_matvar_indexes_view(mvi)
90-
, m_items_internal_main_view(constituent_local_ids._itemsInternal())
77+
, m_constituent_list_view(constituent_local_ids)
9178
, m_items_local_id_view(local_ids)
9279
, m_component(component)
9380
{
@@ -102,23 +89,12 @@ class ARCANE_CORE_EXPORT ComponentItemVectorView
10289
//! Construit une vue à partir d'une autre vue.
10390
ComponentItemVectorView(IMeshComponent* component, ComponentItemVectorView rhs_view)
10491
: m_matvar_indexes_view(rhs_view.m_matvar_indexes_view)
105-
, m_items_internal_main_view(rhs_view.m_items_internal_main_view)
92+
, m_constituent_list_view(rhs_view.m_constituent_list_view)
10693
, m_items_local_id_view(rhs_view.m_items_local_id_view)
10794
, m_component(component)
10895
{
10996
}
11097

111-
protected:
112-
113-
//! Version obsolète temporaire pour éviter un avertissement de compilation
114-
ComponentItemVectorView(IMeshComponent* component, ConstArrayView<MatVarIndex> mvi, ConstArrayView<ComponentItemInternal*> mv, ConstArrayView<Int32> local_ids, bool)
115-
: m_matvar_indexes_view(mvi)
116-
, m_items_internal_main_view(mv)
117-
, m_items_local_id_view(local_ids)
118-
, m_component(component)
119-
{
120-
}
121-
12298
public:
12399

124100
//! Nombre d'entités dans la vue
@@ -129,17 +105,13 @@ class ARCANE_CORE_EXPORT ComponentItemVectorView
129105

130106
private:
131107

132-
ConstArrayView<ComponentItemInternal*> _itemsInternalView() const
133-
{
134-
return m_items_internal_main_view;
135-
}
136-
137108
// Tableau des MatVarIndex de cette vue.
138109
ConstArrayView<MatVarIndex> _matvarIndexes() const { return m_matvar_indexes_view; }
139110

140111
//! Tableau des localId() des entités associées
141112
ConstArrayView<Int32> _internalLocalIds() const { return m_items_local_id_view; }
142113

114+
ConstituentItemLocalIdListView _constituentItemListView() const { return m_constituent_list_view; }
143115
/*!
144116
* \internal
145117
* \brief Créé une sous-vue de cette vue.
@@ -148,13 +120,20 @@ class ARCANE_CORE_EXPORT ComponentItemVectorView
148120
*/
149121
ComponentItemVectorView _subView(Integer begin, Integer size);
150122

123+
//! Pour les tests vérifie que \a rhs et l'instance pointent sur les même données
124+
bool _isSamePointerData(const ComponentItemVectorView& rhs) const
125+
{
126+
bool test1 = m_constituent_list_view._isSamePointerData(rhs.m_constituent_list_view);
127+
return test1 && (m_matvar_indexes_view.data() == rhs.m_matvar_indexes_view.data());
128+
}
129+
151130
private:
152131

153-
// NOTE: Cette classe est wrappé directement en C#.
132+
// NOTE: Cette classe est wrappée directement en C#.
154133
// Si on modifie les champs de cette classe il faut modifier le type correspondant
155134
// dans le wrappeur.
156135
ConstArrayView<MatVarIndex> m_matvar_indexes_view;
157-
ConstArrayView<ComponentItemInternal*> m_items_internal_main_view;
136+
ConstituentItemLocalIdListView m_constituent_list_view;
158137
ConstArrayView<Int32> m_items_local_id_view;
159138
IMeshComponent* m_component = nullptr;
160139
};
@@ -180,15 +159,6 @@ class ARCANE_CORE_EXPORT MatItemVectorView
180159

181160
private:
182161

183-
//! Construit un vecteur contenant les entités de \a group pour le composant \a component
184-
ARCANE_DEPRECATED_REASON("Use overload with ConstituentItemLocalIdListView instead")
185-
MatItemVectorView(IMeshComponent* component,
186-
ConstArrayView<MatVarIndex> mv_indexes,
187-
ConstArrayView<ComponentItemInternal*> mv,
188-
ConstArrayView<Int32> local_ids)
189-
: ComponentItemVectorView(component, mv_indexes, mv, local_ids, true)
190-
{}
191-
192162
MatItemVectorView(IMeshComponent* component,
193163
ConstArrayView<MatVarIndex> mv_indexes,
194164
ConstituentItemLocalIdListView constituent_local_ids,
@@ -243,15 +213,6 @@ class ARCANE_CORE_EXPORT EnvItemVectorView
243213

244214
private:
245215

246-
//! Construit un vecteur contenant les entités de \a group pour le composant \a component
247-
ARCANE_DEPRECATED_REASON("Use overload with ConstituentItemLocalIdListView instead")
248-
EnvItemVectorView(IMeshComponent* component,
249-
ConstArrayView<MatVarIndex> mv_indexes,
250-
ConstArrayView<ComponentItemInternal*> mv,
251-
ConstArrayView<Int32> local_ids)
252-
: ComponentItemVectorView(component, mv_indexes, mv, local_ids, true)
253-
{}
254-
255216
EnvItemVectorView(IMeshComponent* component,
256217
ConstArrayView<MatVarIndex> mv_indexes,
257218
ConstituentItemLocalIdListView constituent_local_ids,

0 commit comments

Comments
 (0)