12#ifndef ARCANE_ITEMGROUPIMPL_H
13#define ARCANE_ITEMGROUPIMPL_H
18#include "arcane/core/SharedReference.h"
19#include "arcane/utils/SharedPtr.h"
21#include "arcane/core/GroupIndexTable.h"
32#define ITEMGROUP_USE_OBSERVERS
73:
public SharedReference
77 friend class ItemGroupSubPartsByType;
243 bool isLocalToSubDomain()
const;
246 void setLocalToSubDomain(
bool v);
275 void invalidate(
bool force_recompute);
295 bool check_if_present);
300 void removeSuppressedItems();
312 bool checkNeedUpdate();
324 void beginTransaction();
327 void endTransaction();
329 ARCANE_DEPRECATED_REASON(
"Y2022: Use itemInfoListView() instead")
341 void setIsAllItems();
344 bool isAllItems() const;
353 bool needSynchronization() const;
356 Int64 timestamp() const;
371 void detachObserver(const
void* ref);
381 bool hasInfoObserver() const;
384 void setComputeFunctor(
IFunctor* functor);
387 bool hasComputeFunctor() const;
405 bool hasSynchronizer();
410 bool checkIsSorted() const;
416 bool isContiguousLocalIds()
const;
426 void checkLocalIdsAreContiguous()
const;
441 Int64 capacity()
const;
454 ARCANE_DEPRECATED_REASON(
"Y2024: This method is internal to Arcane")
455 Int32Array& unguardedItemsLocalId(const
bool self_invalidate = true);
460 static
void _buildSharedNull();
462 static
void _destroySharedNull();
467 void _computeChildrenByType();
484 void _checkUpdateSimdPadding();
496 bool _checkNeedUpdateNoPadding();
497 bool _checkNeedUpdateWithPadding();
498 bool _checkNeedUpdate(
bool do_padding);
Declarations of types on entities.
Base class of a hash table between group items and their positions in the table.
Interface of an entity family.
Interface of an operator on entities sorted by type.
Interface of an observable.
Interface of a reference counter.
Interface of a variable synchronization service.
Functor for calculating elements of a group.
Internal API of ItemGroupImpl in Arcane.
Brief: Implementation of a mesh entity group.
virtual Integer nbRef() const
Number of references on the group.
void _executeReorder(const Int32ConstArrayView *info)
Sub-group invalidation.
ItemGroupImpl * parent() const
Parent group (0 if none).
void checkLocalIdsAreContiguous() const
Checks if the group entities have contiguous localIds().
const String & fullName() const
Full group name (with mesh + family).
void _updateNeedInfoFlag(const bool flag)
Forced update of the restructuring information flag.
void _executeInvalidate()
Sub-group invalidation.
virtual void deleteMe()
Notification from SharedReference indicating that the instance must be destroyed.
void checkLocalIdsAreContigous() const
bool isContiguousLocalIds() const
Indicates if the group entities have contiguous localIds().
bool isContigousLocalIds() const
void _removeItems(SmallSpan< const Int32 > items_local_id)
Removes the entities items_local_id from the group.
ItemGroupImpl()
Constructs a null group.
void _forceInvalidate(const bool self_invalidate)
Recursive forced invalidation.
ItemGroupInternal * m_p
Group implementation.
const String & name() const
Group name.
Implementation of the ItemGroupImpl class.
View of a list to obtain information about entities.
Implementation of an array of lists of entities.
Int32 refCount() const override
Returns the value of the reference counter.
View of an array of elements of type T.
Unicode character string.
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --
std::int64_t Int64
Signed integer type of 64 bits.
Int32 Integer
Type representing an integer.
ConstArrayView< Int32 > Int32ConstArrayView
C equivalent of a 1D array of 32-bit integers.
ConstArrayView< ItemInternal * > ItemInternalList
Type of the internal list of entities.
eItemKind
Mesh entity type.
Array< Int32 > Int32Array
Dynamic one-dimensional array of 32-bit integers.
std::int32_t Int32
Signed integer type of 32 bits.