14#include "arcane/mesh/ItemInternalMap.h"
16#include "arcane/utils/Iterator.h"
17#include "arcane/utils/FatalErrorException.h"
18#include "arcane/utils/NotSupportedException.h"
20#include "arcane/core/Item.h"
22#include <unordered_set>
30#define ENUMERATE_ITEM_INTERNAL_MAP_DATA2(iter, item_list) \
31 for (auto __i__##iter : item_list.buckets()) \
32 for (auto* iter = __i__##iter; iter; iter = iter->next())
47notifyUniqueIdsChanged()
51 std::unordered_set<Int64> uids;
52 this->eachItem([&](
Item item) {
53 Int64 uid = item.
uniqueId().asInt64();
54 if (uids.find(uid) != uids.end())
60 if constexpr (UseNewImpl) {
61 Int64
nb_item = m_new_impl.size();
64 for (
auto& x : m_new_impl) {
65 items[index] = x.second;
69 for (index = 0; index <
nb_item; ++index) {
71 m_new_impl.insert(std::make_pair(item->
uniqueId(), item));
75 ENUMERATE_ITEM_INTERNAL_MAP_DATA2 (
nbid, m_impl) {
76 nbid->setKey(
nbid->value()->uniqueId().asInt64());
94 if constexpr (UseNewImpl) {
95 for (
auto& iter : m_new_impl) {
103 ENUMERATE_ITEM_INTERNAL_MAP_DATA2 (
nbid, m_impl) {
115void ItemInternalMap::
121 if constexpr (UseNewImpl) {
122 for (
auto& x : m_new_impl) {
123 if (x.first != x.second->uniqueId())
124 ARCANE_FATAL(
"Incoherent uid key={0} item_internal={1}", x.first, x.second->uniqueId());
128 ENUMERATE_ITEM_INTERNAL_MAP_DATA2(nbid, m_impl)
130 if (nbid->key() != nbid->value()->uniqueId())
131 ARCANE_FATAL(
"Incoherent uid key={0} item_internal={1}", nbid->key(), nbid->value()->uniqueId());
139void ItemInternalMap::
140_throwNotFound(
Int64 key)
const
148void ItemInternalMap::
149_throwNotSupported(
const char* func_name)
const
154void ItemInternalMap::
155_checkValid(
Int64 uid, ItemInternal* v)
const
157 if (v->uniqueId() != uid)
158 ARCANE_FATAL(
"Bad found uniqueId found={0} expected={1}", v->uniqueId(), uid);
#define ARCANE_THROW(exception_class,...)
Macro pour envoyer une exception avec formattage.
#define ARCANE_FATAL(...)
Macro envoyant une exception FatalErrorException.
ItemUniqueId uniqueId() const
Numéro unique de l'entité
Structure interne d'une entité de maillage.
Classe de base d'un élément de maillage.
ItemUniqueId uniqueId() const
Identifiant unique sur tous les domaines.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
bool arcaneIsCheck()
Vrai si on est en mode vérification.