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;
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) {
98 ItemInternal* new_ii = items_internal[old_to_new_local_ids[current_local_id]];
103 ENUMERATE_ITEM_INTERNAL_MAP_DATA2 (nbid, m_impl) {
106 ItemInternal* new_ii = items_internal[old_to_new_local_ids[current_local_id]];
107 nbid->setValue(new_ii);
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.
Vue modifiable d'un tableau d'un type T.
Vue constante d'un tableau de type T.
ItemUniqueId uniqueId() const
Numéro unique de l'entité
Int32 localId() const
Numéro local (au sous-domaine) 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.
Vecteur 1D de données avec sémantique par valeur (style STL).
void eachItem(const Lambda &lambda)
Fonction template pour itérer sur les entités de l'instance.
bool arcaneIsCheck()
Vrai si on est en mode vérification.
std::int64_t Int64
Type entier signé sur 64 bits.
std::int32_t Int32
Type entier signé sur 32 bits.