12#ifndef ARCANE_ITEMGROUPIMPL_H
13#define ARCANE_ITEMGROUPIMPL_H
17#include "arcane/ItemTypes.h"
18#include "arcane/SharedReference.h"
19#include "arcane/utils/SharedPtr.h"
21#include "arcane/GroupIndexTable.h"
32#define ITEMGROUP_USE_OBSERVERS
41class ItemGroupInternal;
45class ItemGroupImplInternal;
72:
public SharedReference
238 bool isLocalToSubDomain()
const;
241 void setLocalToSubDomain(
bool v);
270 void invalidate(
bool force_recompute);
290 bool check_if_present);
295 void removeSuppressedItems();
307 bool checkNeedUpdate();
319 void beginTransaction();
322 void endTransaction();
324 ARCANE_DEPRECATED_REASON(
"Y2022: Use itemInfoListView() instead")
336 void setIsAllItems();
339 bool isAllItems() const;
348 bool needSynchronization() const;
351 Int64 timestamp() const;
366 void detachObserver(const
void * ref);
376 bool hasInfoObserver() const;
379 void setComputeFunctor(
IFunctor* functor);
382 bool hasComputeFunctor() const;
400 bool hasSynchronizer();
405 bool checkIsSorted() const;
408 bool isContigousLocalIds() const;
415 void checkLocalIdsAreContigous() const;
431 Int64 capacity() const;
434 ItemGroupImplInternal* _internalApi() const;
444 ARCANE_DEPRECATED_REASON(
"Y2024: This method is internal to Arcane")
445 Int32Array& unguardedItemsLocalId(const
bool self_invalidate = true);
451 static
void _buildSharedNull();
453 static
void _destroySharedNull();
458 void _initChildrenByType();
460 void _computeChildrenByType();
462 void _initChildrenByTypeV2();
464 void _computeChildrenByTypeV2();
474 void _executeInvalidate();
476 void _updateNeedInfoFlag(const
bool flag);
479 void _forceInvalidate(const
bool self_invalidate);
481 void _checkUpdateSimdPadding();
483 virtual
void deleteMe();
487 ItemGroupInternal* m_p =
nullptr;
493 bool _checkNeedUpdateNoPadding();
494 bool _checkNeedUpdateWithPadding();
495 bool _checkNeedUpdate(
bool do_padding);
Interface d'une famille d'entités.
Interface d'un opérateur sur des entités rangées par type.
Interface d'un observable.
Interface d'un compteur de référence.
Interface d'un service de synchronisation de variable.
Fonctor pour le calcul des éléments d'un groupe.
virtual Integer nbRef() const
Nombre de références sur le groupe.
ItemGroupImpl * parent() const
Groupe parent (0 si aucun)
const String & fullName() const
Nom complet du groupe (avec maillage + famille)
ItemGroupImpl()
Construit un groupe nul.
const String & name() const
Nom du groupe.
Groupe d'entités de maillage.
Vue sur une liste pour obtenir des informations sur les entités.
Int32 refCount() const override
Retourne la valeur du compteur de référence.
Vue d'un tableau d'éléments de type T.
Chaîne de caractères unicode.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
std::int64_t Int64
Type entier signé sur 64 bits.
Int32 Integer
Type représentant un entier.
ConstArrayView< Int32 > Int32ConstArrayView
Equivalent C d'un tableau à une dimension d'entiers 32 bits.
ConstArrayView< ItemInternal * > ItemInternalList
Type de la liste interne des entités.
eItemKind
Genre d'entité de maillage.
Array< Int32 > Int32Array
Tableau dynamique à une dimension d'entiers 32 bits.
std::int32_t Int32
Type entier signé sur 32 bits.