12#ifndef ARCANE_ITEMGROUP_H
13#define ARCANE_ITEMGROUP_H
17#include "arcane/utils/AutoRef.h"
18#include "arcane/utils/Iterator.h"
20#include "arcane/core/ItemGroupImpl.h"
95 m_impl->_checkNeedUpdateNoPadding();
109 m_impl->_checkNeedUpdateNoPadding();
232 return m_impl->isLocalToSubDomain();
245 m_impl->setLocalToSubDomain(v);
288 bool isAllItems()
const;
299 return m_impl->timestamp();
309 void incrementTimestamp()
const;
314 return m_impl->localIdToIndex();
321 bool isAutoComputed()
const;
324 bool hasSynchronizer()
const;
327 bool checkIsSorted()
const;
343 ItemGroupImplInternal* _internalApi()
const;
352 template <
typename T>
367 return impl->
itemKind() == ik ? impl : ItemGroupImpl::checkSharedNull();
384 return g1.internal() == g2.internal();
397 return g1.internal() < g2.internal();
408 return g1.internal() != g2.internal();
428 typedef typename TraitsType::ItemType ItemType;
430 typedef const ItemType* const_iterator;
431 typedef ItemType* iterator;
432 typedef ItemType value_type;
433 typedef const ItemType& const_reference;
437 inline ItemGroupT() =
default;
444 inline ItemGroupT(
const ItemGroupT<T>& from)
447 inline const ItemGroupT<T>& operator=(
const ItemGroupT<T>& from)
452 inline const ItemGroupT<T>& operator=(
const ItemGroup& from)
Declarations of types on entities.
Encapsulation of a pointer with a reference counter.
Interface of an entity family.
Interface of an operator on entities sorted by type.
Interface of a variable synchronization service.
Functor for calculating elements of a group.
eItemKind itemKind() const
Type of the group. It is the type of its elements.
Reference to a group of a given kind.
ItemTraitsT< T > TraitsType
Type of the class containing the entity characteristics.
ItemGroupT< T > ThatClass
Type of this class.
ItemEnumerator enumerator() const
Enumerator over the group entities.
bool empty() const
Tests if the group is empty.
void setLocalToSubDomain(bool v)
Sets the boolean indicating if the group is local to the subdomain.
static ItemGroupImpl * _check(ItemGroupImpl *impl, eItemKind ik)
Returns the group impl if it is of kind kt, the null group otherwise.
const String & name() const
Group name.
bool isLocalToSubDomain() const
True if the group is local to the subdomain.
void invalidate(bool force_recompute=false)
Invalidates the group.
ItemGroup & operator=(const ItemGroup &from)=default
Assigns a reference to the group from to this instance.
const String & fullName() const
Group name.
SharedPtrT< GroupIndexTable > localIdToIndex() const
Table of local ids to a position for all entities in the group.
Integer size() const
Number of elements in the group.
IItemFamily * itemFamily() const
Entity family to which this group belongs (0 for the null group).
ItemGroup(const ItemGroup &from)
Constructs a reference to the group from.
AutoRefT< ItemGroupImpl > m_impl
Internal representation of the group.
eItemKind itemKind() const
Group kind. This is the kind of its elements.
bool null() const
true means the group is the null group
ItemEnumerator const_iter
Iteration range type (to be removed).
ItemGroup()
Constructs a null group.
IMesh * mesh() const
Mesh to which this group belongs (0 for the null group).
ItemGroup own() const
Group equivalent to this one but containing only the local elements of the subdomain.
static eItemKind kind()
Entity kind.
View on a vector of entities.
Unicode character string.
ItemGroupT< Cell > CellGroup
Group of cells.
ItemGroupT< Face > FaceGroup
Group of faces.
ItemGroupT< Edge > EdgeGroup
Group of edges.
ItemGroupT< Node > NodeGroup
Group of nodes.
-- 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.
bool operator<(const Item &item1, const Item &item2)
Compare two entities.
eItemKind
Mesh entity type.