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"
34class IVariableSynchronizer;
72 return m_impl->null();
78 return m_impl->name();
84 return m_impl->fullName();
88 inline Integer
size()
const
90 m_impl->_checkNeedUpdateNoPadding();
91 return m_impl->size();
104 m_impl->_checkNeedUpdateNoPadding();
105 return m_impl->empty();
182 CellGroup levelCellGroup(
const Integer& level)
const;
185 CellGroup ownLevelCellGroup(
const Integer& level)
const;
227 return m_impl->isLocalToSubDomain();
240 m_impl->setLocalToSubDomain(v);
283 bool isAllItems()
const;
288 return m_impl->timestamp();
294 return m_impl->localIdToIndex();
301 bool isAutoComputed()
const;
304 bool hasSynchronizer()
const;
307 bool checkIsSorted()
const;
332 template <
typename T>
347 return impl->
itemKind()==
ik ? impl : ItemGroupImpl::checkSharedNull();
363 return g1.internal()==
g2.internal();
376 return g1.internal()<
g2.internal();
387 return g1.internal()!=
g2.internal();
406 typedef typename TraitsType::ItemType ItemType;
408 typedef const ItemType* const_iterator;
409 typedef ItemType* iterator;
410 typedef ItemType value_type;
411 typedef const ItemType& const_reference;
420 inline ItemGroupT(
const ItemGroupT<T>& from)
422 inline const ItemGroupT<T>& operator=(
const ItemGroupT<T>& from)
423 {
m_impl = from.internal();
return (*
this); }
424 inline const ItemGroupT<T>& operator=(
const ItemGroup& from)
425 { _assign(from);
return (*
this); }
434 ItemEnumeratorT<T> enumerator()
const
Déclarations de types sur les entités.
Interface d'une famille d'entités.
Interface d'un opérateur sur des entités rangées par type.
Interface d'un service de synchronisation de variable.
Fonctor pour le calcul des éléments d'un groupe.
API interne à Arcane de ItemGroupImpl.
Implémentation d'un groupe d'entités de maillage.
eItemKind itemKind() const
Genre du groupe. Il s'agit du genre de ses éléments.
ItemTraitsT< T > TraitsType
Type de la classe contenant les caractéristiques de l'entité
ItemGroupT< T > ThatClass
Type de cette classe.
Groupe d'entités de maillage.
ItemEnumerator enumerator() const
Enumérateur sur les entités du groupe.
bool empty() const
Teste si le groupe est vide.
void setLocalToSubDomain(bool v)
Positionne le booléen indiquant si le groupe est local au sous-domaine.
ItemGroupImpl * internal() const
Retourne l'implémentation du groupe.
static ItemGroupImpl * _check(ItemGroupImpl *impl, eItemKind ik)
Retourne le groupe impl s'il est du genre kt, le groupe nul sinon.
const String & name() const
Nom du groupe.
bool isLocalToSubDomain() const
Vrai si le groupe est local au sous-domaine.
void invalidate(bool force_recompute=false)
Invalide le groupe.
Int64 timestamp() const
Retourne le temps du groupe. Ce temps est incrémenté après chaque modification.
ItemGroup & operator=(const ItemGroup &from)=default
Affecte à cette instance une référence au groupe from.
const String & fullName() const
Nom du groupe.
SharedPtrT< GroupIndexTable > localIdToIndex() const
Table des local ids vers une position pour toutes les entités du groupe.
Integer size() const
Nombre d'éléments du groupe.
IItemFamily * itemFamily() const
Famille d'entité à laquelle appartient ce groupe (0 pour le group nul)
ItemGroup(const ItemGroup &from)
Construit une référence au groupe from.
AutoRefT< ItemGroupImpl > m_impl
Représentation interne du groupe.
eItemKind itemKind() const
Genre du groupe. Il s'agit du genre de ses éléments.
bool null() const
true is le groupe est le groupe nul
ItemEnumerator const_iter
Type de l'intervalle d'itération (à supprimer)
ItemGroup()
Construit un groupe nul.
IMesh * mesh() const
Maillage auquel appartient ce groupe (0 pour le group nul)
ItemGroup own() const
Groupe équivalent à celui-ci mais contenant uniquement les éléments propres au sous-domaine.
Vue sur un vecteur d'entités.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Vue constante d'un tableau de type T.
Chaîne de caractères unicode.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
bool operator<(const Item &item1, const Item &item2)
Compare deux entités.
eItemKind
Genre d'entité de maillage.