12#ifndef ARCANE_CORE_VARIABLE_H
13#define ARCANE_CORE_VARIABLE_H
17#include "arcane/utils/TraceAccessor.h"
18#include "arcane/utils/Array.h"
21#include "arcane/core/IVariable.h"
22#include "arcane/core/IData.h"
40class VariableResizeArgs;
116 bool isUsed()
const override;
160 void resize(
Integer n) override;
161 void resizeFromGroup() override;
174 void addTag(const
String& tagname,const
String& tagvalue) override;
175 void removeTag(const
String& tagname) override;
176 bool hasTag(const
String& tagname) override;
181 void update() override;
182 void setUpToDate() override;
183 Int64 modifiedTime() override;
184 void addDepend(
IVariable* var,eDependType dt) override;
186 void removeDepend(
IVariable* var) override;
191 void update(
Real wanted_time) override;
195 IVariableInternal* _internalApi() override;
203 void _setProperty(
int property);
210 void _setData(
const Ref<IData>& data);
213 void _setValidData(
bool valid_data);
219 bool _hasValidData()
const;
223 virtual void _internalResize(
const VariableResizeArgs& resize_args) =0;
224 virtual Integer _checkIfSameOnAllReplica(IParallelMng* replica_pm,
int max_print) =0;
225 void _checkSwapIsValid(Variable* rhs);
227 bool _wantShrink()
const;
230 friend class VariablePrivate;
231 void _resize(
const VariableResizeArgs& resize_args);
235 VariablePrivate* m_p;
239 void _checkSetItemFamily();
240 void _checkSetItemGroup();
241 void _checkSetProperty(VariableRef*);
242 bool _hasReference()
const;
243 void _removeMeshReference();
244 String _computeComparisonHashCollective(IData* sorted_data);
245 VariableMetaData* _createMetaData()
const;
258#include "arcane/core/VariableScalar.h"
259#include "arcane/core/VariableArray.h"
Déclarations des types généraux de Arcane.
Classe de base des vecteurs 1D de données.
Informations sur l'allocation d'une donnée.
Interface de lecture des données d'une variable.
Interface d'écriture des données d'une variable.
Interface d'une famille d'entités.
Interface d'un observable.
Interface du gestionnaire de parallélisme pour un sous-domaine.
Interface d'un sérialiseur.
Interface du gestionnaire d'un sous-domaine.
Interface de la classe fonctor de recalcul d'une variable.
Interface du gestionnaire de variables.
Groupe d'entités de maillage.
Référence à une instance.
Chaîne de caractères unicode.
TraceAccessor(ITraceMng *m)
Construit un accesseur via le gestionnaire de trace m.
Paramètres nécessaires à la construction d'une variable.
Informations sur une dépendance de variable.
Infos caractérisant une variable.
Référence à une variable.
String itemGroupName() const final
Nom du groupe d'entité associée.
IMesh * mesh() const final
Maillage auquel est associé la variable.
void notifyBeginWrite() override
Notifie du début d'écriture de data().
Integer nbReference() const override
Nombre de références sur cette variable.
void removeVariableRef(VariableRef *ref) override
Supprime une référence à cette variable.
bool isUsed() const override
Etat d'utilisation de la variable.
Variable(const VariableBuildInfo &v, const VariableInfo &vi)
Créé une variable lié à la référence v.
VariableMetaData * createMetaData() const override
Créé une instance contenant les meta-données de la variable.
Ref< VariableMetaData > createMetaDataRef() const override
Créé une instance contenant les meta-données de la variable.
bool isPartial() const override
Indique si la variable est partielle.
void notifyReferencePropertyChanged() override
Indique que les propriétés d'une des références à cette variable ont changé (interne)
IVariableMng * variableMng() const override
Gestionnaire de variable associé à la variable.
String name() const final
Nom de la variable.
ItemGroup itemGroup() const final
Groupe du maillage associé.
void notifyEndRead() override
Notifie de la modification externe de data().
bool initialize(const ItemGroup &, const String &) override
Initialise la variable sur un groupe.
void read(IDataReader *d) override
void syncReferences() override
Synchronise les références.
Integer checkIfSync(Integer max_print) override
Vérifie si la variable est bien synchronisée.
void setUsed(bool v) override
Positionne l'état d'utilisation de la variable.
VariableRef * firstReference() const override
Première réference (ou null) sur cette variable.
String fullName() const final
Nom complet de la variable (avec le préfixe de la famille)
eItemKind itemKind() const override
Type des entités du maillage sur lequel repose la variable.
ISubDomain * subDomain() override
Sous-domaine associé à la variable (TODO rendre obsolète fin 2023)
Integer dimension() const override
Dimension de la variable.
void addVariableRef(VariableRef *ref) override
Ajoute une référence à cette variable.
Integer multiTag() const override
Indique si la variable est un tableau à taille multiple.
IItemFamily * itemFamily() const final
Famille d'entité associée.
eDataType dataType() const override
Type de la donnée gérée par la variable (Real, Integer, ...)
void write(IDataWriter *d) override
Sauve la variable.
Integer checkIfSameOnAllReplica(Integer max_print) override
Vérifie si la variable a les mêmes valeurs sur tous les réplicas.
String itemFamilyName() const final
Nom de la famille associée (nul si aucune).
int property() const override
MeshHandle meshHandle() const final
Maillage auquel est associé la variable.
String meshName() const final
Nom du maillage associé (nul si aucun).
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
std::int64_t Int64
Type entier signé sur 64 bits.
Int32 Integer
Type représentant un entier.
ConstArrayView< Int32 > Int32ConstArrayView
Equivalent C d'un tableau à une dimension d'entiers 32 bits.
eTraceType
Type de trace possible.
eItemKind
Genre d'entité de maillage.
double Real
Type représentant un réel.
eDataType
Type d'une donnée.