12#ifndef ARCANE_ANYITEMS_ANYITEMVARIABLE_H
13#define ARCANE_ANYITEMS_ANYITEMVARIABLE_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"
26namespace Arcane::AnyItem
53template<
typename DataType>
72 ARCANE_ASSERT((
m_used ==
true),(
"VariableAdder never used"));
76 template<
typename K,
typename T>
79 ARCANE_ASSERT((
m_used ==
false),(
"VariableAdder already used"));
86 template<
typename K,
typename T>
89 ARCANE_ASSERT((
m_used ==
false),(
"VariableAdder already used"));
163 return VariableAdder(*
this,group);
223 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.
Variable< DataType > & m_variable
Variable AnyItem.
void operator<<(MeshVariableScalarRefT< K, T > &v)
Liaison d'un variable.
void operator<<(MeshPartialVariableScalarRefT< K, T > &v)
Liaison d'une variable partielle.
const ItemGroup & m_group
Groupe de la variable.
bool m_used
Indicateur sur l'utilisation du Adder.
Variable aggrégée de types quelconques (pas de variables tableaux)
VariableAdder operator[](const ItemGroup &group)
Ajout d'une variable pour un groupe.
void notifyFamilyIsInvalidate()
Notification d'invalidation de la famille.
ArrayView< DataType > valuesAtGroup(const Integer igrp)
Doonnées brutes associées à un groupe identifié relativement à sa famille.
ConstArrayView< IVariable * > variables() const
Tableau des variables.
const DataType & operator[](const Group::BlockItemEnumerator &item) const
Accesseur direct par un enumerateur AnyItem.
Arcane::UniqueArray< IVariable * > m_variables
Conteneur des variables.
ConstArrayView< DataType > valuesAtGroup(const Integer igrp) const
Doonnées brutes associées à un groupe identifié relativement à sa famille.
const DataType & operator[](const LinkFamily::LinkData &item) const
Accesseur direct par un élément de LinkFamily (LinkData)
DataType & operator[](const LinkFamily::LinkData &item)
Accesseur direct par un élément de LinkFamily (LinkData)
const Family & family() const
Accesseur à la famille.
Arcane::UniqueArray< ArrayView< DataType > > m_values
Conteneur des variables génériques.
void notifyFamilyIsIncreased()
Notification d'aggrandissement de la famille.
DataType & operator[](const Group::BlockItemEnumerator &item)
Accesseur direct par un enumerateur AnyItem.
const Family m_family
Famille AnyItem des groupes.
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)