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
41class ItemGroupInternal;
45class ItemGroupImplInternal;
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;
444 ItemGroupImplInternal* _internalApi()
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();
477 void _executeInvalidate();
479 void _updateNeedInfoFlag(const
bool flag);
482 void _forceInvalidate(const
bool self_invalidate);
484 void _checkUpdateSimdPadding();
486 virtual
void deleteMe();
490 ItemGroupInternal* m_p =
nullptr;
496 bool _checkNeedUpdateNoPadding();
497 bool _checkNeedUpdateWithPadding();
498 bool _checkNeedUpdate(
bool do_padding);
Declarations of types on entities.
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.
virtual Integer nbRef() const
Number of references on the group.
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 checkLocalIdsAreContigous() const
bool isContiguousLocalIds() const
Indicates if the group entities have contiguous localIds().
bool isContigousLocalIds() const
ItemGroupImpl()
Constructs a null group.
const String & name() const
Group name.
View of a list to obtain information about 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.