95 , m_group_impl(
nullptr)
104 : m_view(view.
localIds(), view.m_local_id_offset)
108 : m_view(
rhs.localIds(),
rhs._localIdOffset())
111 : m_view(
rhs._localIds(),
rhs._localIdOffset())
120 constexpr bool operator()() {
return m_index < m_view.m_size; }
123 constexpr bool hasNext() {
return m_index < m_view.m_size; }
126 constexpr Integer
count()
const {
return m_view.m_size; }
129 constexpr Integer
index()
const {
return m_index; }
135 Int32
localId()
const {
return m_view.localId(m_index); }
141 ARCANE_DEPRECATED_REASON(
"Y2022: This method is internal to Arcane")
151 static constexpr int version() {
return 3; }
155 impl::ItemLocalIdListContainerView m_view;
157 const ItemGroupImpl* m_group_impl =
nullptr;
162 ItemEnumeratorBase(
const ItemEnumerator& rhs,
bool);
164 ItemEnumeratorBase(
const impl::ItemLocalIdListContainerView& view,
Int32 index,
const ItemGroupImpl* agroup)
167 , m_group_impl(agroup)
171 explicit ItemEnumeratorBase(
const impl::ItemLocalIdListContainerView& view)
176 ItemInternal* _internal(ItemSharedInfo* si)
const
178 return si->m_items_internal[m_view.localId(m_index)];
180 constexpr const ItemInternalPtr* _unguardedItems(ItemSharedInfo* si)
const
182 return si->m_items_internal.data();
205 using LocalIdType =
typename ItemType::LocalIdType;
212 , m_item(NULL_ITEM_LOCAL_ID, ItemSharedInfo::nullInstance())
222 , m_item(NULL_ITEM_LOCAL_ID, items.m_item_shared_info)
226 , m_item(NULL_ITEM_LOCAL_ID, view.m_shared_info)
242 , m_item(NULL_ITEM_LOCAL_ID,
rhs.m_shared_info)
247 , m_item(NULL_ITEM_LOCAL_ID,
si)
275 ARCANE_DEPRECATED_REASON(
"Y2022: This method is internal to Arcane")
282 ARCANE_DEPRECATED_REASON(
"Y2022: This method is internal to Arcane")
287 constexpr ItemType operator*()
const
289 m_item.m_local_id = m_view.localId(m_index);
292 constexpr const ItemType* operator->()
const
294 m_item.m_local_id = m_view.localId(m_index);
298 constexpr LocalIdType asItemLocalId()
const
300 return LocalIdType{ m_view.localId(m_index) };
303 constexpr operator LocalIdType()
const
305 return LocalIdType{ m_view.localId(m_index) };
308 ItemEnumerator toItemEnumerator()
const;
312 impl::ItemBase _internalItemBase()
const {
return m_item.itemBase(); }
316 mutable ItemType m_item = ItemType(NULL_ITEM_LOCAL_ID,
nullptr);
321 ItemEnumeratorBaseT(
const ItemEnumerator& rhs,
bool);
323 ItemEnumeratorBaseT(
const impl::ItemLocalIdListContainerView& view,
Int32 index,
324 const ItemGroupImpl* agroup, Item item_base)
325 : ItemEnumeratorBase(view,
index, agroup)
330 void _init(
const ItemInternalPtr* items)
332 m_item.m_shared_info = ItemInternalCompatibility::_getSharedInfo(items,
count());