12#ifndef ARCANE_ANYITEMS_ANYITEMVARIABLEARRAY_H
13#define ARCANE_ANYITEMS_ANYITEMVARIABLEARRAY_H
17#include "arcane/utils/Exception.h"
19#include "arcane/anyitem/AnyItemGlobal.h"
20#include "arcane/anyitem/AnyItemGroup.h"
21#include "arcane/anyitem/AnyItemLinkFamily.h"
22#include "arcane/VariableTypedef.h"
27namespace Arcane::AnyItem
55template<
typename DataType>
74 ARCANE_ASSERT((
m_used ==
true),(
"VariableAdder never used"));
78 template<
typename K,
typename T>
81 ARCANE_ASSERT((
m_used ==
false),(
"VariableAdder already used"));
88 template<
typename K,
typename T>
91 ARCANE_ASSERT((
m_used ==
false),(
"VariableAdder already used"));
165 return VariableAdder(*
this,group);
225 inline void _insertInternalVariable(ItemGroup group, IVariable* v)
Famille AnyItem (pattern flyweight) Aggrégation de groupes pour décrire des variables / variables par...
bool isPartial(const ItemGroup &group) const
retourne vrai si le groupe est associé à une variable partielle
void removeObserver(IFamilyObserver &observer) const
Supprime un observeur.
Integer groupSize() const
Taille de la famille, ie nombre de groupes.
void registerObserver(IFamilyObserver &observer) const
Enregistre un observeur.
Integer groupIndex(const ItemGroup &group) const
Position du groupe dans la famille.
Outil pour l'ajout de variable à un groupe.
const ItemGroup & m_group
Groupe de la variable.
VariableArray< DataType > & m_variable
Variable AnyItem.
void operator<<(MeshVariableArrayRefT< K, T > &v)
Liaison d'un variable.
void operator<<(MeshPartialVariableArrayRefT< K, T > &v)
Liaison d'une variable partielle.
bool m_used
Indicateur sur l'utilisation du Adder.
Variable tableau aggrégée de types quelconques (pas de variables tableaux) ATTENTION Les variables ar...
Arcane::UniqueArray< Array2View< DataType > > m_values
Conteneur des variables génériques.
const Family m_family
Famille AnyItem des groupes.
ArrayView< DataType > operator[](const LinkFamily::LinkData &item)
Accesseur direct par un élément de LinkFamily (LinkData)
void notifyFamilyIsIncreased()
Notification d'aggrandissement de la famille.
const Family & family() const
Accesseur à la famille.
ArrayView< DataType > operator[](const Group::BlockItemEnumerator &item)
Accesseur direct par un enumerateur AnyItem.
ConstArray2View< DataType > valuesAtGroup(const Integer igrp) const
Doonnées brutes associées à un groupe identifié relativement à sa famille.
Array2View< DataType > valuesAtGroup(const Integer igrp)
Doonnées brutes associées à un groupe identifié relativement à sa famille.
ConstArrayView< DataType > operator[](const Group::BlockItemEnumerator &item) const
Accesseur direct par un enumerateur AnyItem.
ConstArrayView< IVariable * > variables() const
Tableau des variables.
void notifyFamilyIsInvalidate()
Notification d'invalidation de la famille.
VariableAdder operator[](const ItemGroup &group)
Ajout d'une variable pour un groupe.
Arcane::UniqueArray< IVariable * > m_variables
Conteneur des variables.
ConstArrayView< DataType > operator[](const LinkFamily::LinkData &item) const
Accesseur direct par un élément de LinkFamily (LinkData)
Interface d'observeurs de famille AnyItem.
Groupe d'entités de maillage.
const String & name() const
Nom du groupe.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Integer varIndex() const
Identifiant localId de l'item référencé dans sa famille IItemFamily d'origine.
Integer groupIndex() const
Identifiant du groupe auquel est associé l'item référencé par ce LinkData.
Exception lorsqu'une erreur fatale est survenue.
void arcaneCallFunctionAndTerminateIfThrow(std::function< void()> function)