52class ARCANE_MESH_EXPORT ItemInternalMap
55 friend class DynamicMeshKindInfos;
61 using BaseData = LegacyImpl::Data;
65 static constexpr bool UseNewImpl = 1;
69 friend ItemInternalMap;
77 m_legacy_data->setValue(v);
85 explicit LookupData(NewImpl::iterator x)
89 explicit LookupData(BaseData* d)
93 NewImpl::iterator m_iter;
94 BaseData* m_legacy_data =
nullptr;
100 using Data ARCANE_DEPRECATED_REASON(
"Y2024: Data type is internal to Arcane") = LegacyImpl::Data;
122 return m_new_impl.insert(std::make_pair(key, v)).second;
128 return m_new_impl.clear();
134 return CheckedConvert::toInt32(m_new_impl.size());
144 auto x = m_new_impl.find(key);
145 if (x == m_new_impl.end())
153 return (m_new_impl.find(key) != m_new_impl.end());
157 void resize([[maybe_unused]]
Int32 new_size, [[maybe_unused]]
bool use_prime =
false)
166 void notifyUniqueIdsChanged();
180 template <
class Lambda>
void
183 for (
auto [key, value] : m_new_impl)
184 lambda(Arcane::impl::ItemBase(value));
189 return CheckedConvert::toInt32(m_new_impl.bucket_count());
197 auto x = m_new_impl.find(key);
198 return (x != m_new_impl.end()) ? x->second : impl::ItemBase{};
203 auto x = m_new_impl.find(key);
204 return (x != m_new_impl.end()) ? x->second->localId() : NULL_ITEM_LOCAL_ID;
214 auto x = m_new_impl.find(uid);
215 if (x == m_new_impl.end())
227 auto x = m_new_impl.find(uid);
228 if (x == m_new_impl.end())
230 return x->second->localId();
233 void checkValid()
const;
237 ARCANE_DEPRECATED_REASON(
"Y2024: This method is internal to Arcane")
238 Data* lookup([[maybe_unused]]
Int64 key)
240 _throwNotSupported(
"lookup");
243 ARCANE_DEPRECATED_REASON(
"Y2024: This method is internal to Arcane")
244 const Data* lookup([[maybe_unused]]
Int64 key)
const
246 _throwNotSupported(
"lookup");
249 ARCANE_DEPRECATED_REASON(
"Y2024: This method is internal to Arcane")
250 ConstArrayView<BaseData*> buckets()
const
252 _throwNotSupported(
"buckets");
255 ARCANE_DEPRECATED_REASON(
"This method is internal to Arcane")
256 BaseData* lookupAdd([[maybe_unused]] Int64
id,
257 [[maybe_unused]] ItemInternal* value,
258 [[maybe_unused]]
bool& is_add)
260 _throwNotSupported(
"lookupAdd(id,value,is_add)");
263 ARCANE_DEPRECATED_REASON(
"Y2024: This method is internal to Arcane")
264 BaseData* lookupAdd([[maybe_unused]] Int64 uid)
266 _throwNotSupported(
"lookupAdd(uid)");
269 ARCANE_DEPRECATED_REASON(
"Y2024: Use findItem() instead")
270 ItemInternal* lookupValue([[maybe_unused]] Int64 uid)
const
272 _throwNotSupported(
"lookupValue");
275 ARCANE_DEPRECATED_REASON(
"Y2024: Use findItem() instead")
276 ItemInternal* operator[]([[maybe_unused]] Int64 uid)
const
278 _throwNotSupported(
"operator[]");
291 void _changeLocalIds(ArrayView<ItemInternal*> items_internal,
292 ConstArrayView<Int32> old_to_new_local_ids);
294 LookupData _lookupAdd(Int64
id, ItemInternal* value,
bool& is_add)
296 auto x = m_new_impl.insert(std::make_pair(
id, value));
298 return LookupData(x.first);
304 auto x = m_new_impl.find(key);
305 if (x == m_new_impl.end())
307 _checkValid(key, x->second);
313 void _throwNotFound ARCANE_NORETURN(
Int64 id)
const;
314 void _throwNotSupported ARCANE_NORETURN(
const char* func_name)
const;