12#ifndef ARCANE_CORE_IVARIABLE_H
13#define ARCANE_CORE_IVARIABLE_H
17#include "arcane/utils/Ref.h"
36class IVariableComputeFunction;
39class IMemoryAccessTrace;
41class VariableDependInfo;
42class VariableMetaData;
80 PNoNeedSync = (1 << 1),
91 PSubDomainDepend = (1 << 3),
99 PSubDomainPrivate = (1 << 4),
106 PExecutionDepend = (1 << 5),
126 PTemporary = (1 << 7),
133 PNoRestore= (1 << 8),
143 PNoExchange= (1 << 9),
150 PPersistant = (1 << 10),
159 PNoReplicaSync = (1 << 11)
164 friend class VariableMng;
266 ARCANE_DEPRECATED_REASON(
"Y2021: This method is a noop")
267 virtual
void setTraceInfo(Integer
id,
eTraceType tt)=0;
285 virtual
void resize(Integer new_size) =0;
298 virtual
void resizeFromGroup() =0;
306 virtual
void shrinkMemory() =0;
354 virtual Integer checkIfSync(Integer max_print=0) =0;
372 virtual Integer checkIfSame(
IDataReader* reader,Integer max_print,
bool compare_ghost) =0;
396 virtual Integer checkIfSameOnAllReplica(Integer max_print=0) =0;
404 virtual
void synchronize() =0;
423 ARCCORE_DEPRECATED_2020("Use meshHandle() instead")
466 virtual
String itemFamilyName() const =0;
476 ARCANE_DEPRECATED_REASON("Y2024: Use createMetaDataRef() instead")
490 virtual
void syncReferences() =0;
504 virtual
void setUsed(
bool v) =0;
507 virtual
bool isUsed() const =0;
516 virtual
bool isPartial() const =0;
564 virtual const
IData* data() const =0;
599 virtual ARCANE_DEPRECATED_2018
void write(
IDataWriter* writer) =0;
621 virtual
void notifyEndRead() =0;
629 virtual
void notifyBeginWrite() =0;
662 virtual
void removeTag(const
String& tagname) =0;
664 virtual
bool hasTag(const
String& tagname) =0;
672 virtual
void print(std::ostream& o) const =0;
688 virtual
void update() =0;
690 virtual
void update(Real wanted_time) =0;
698 virtual
void setUpToDate() =0;
701 virtual Int64 modifiedTime() =0;
735 ARCANE_DEPRECATED_REASON("Y2021: This method is a noop")
743 virtual
void setIsSynchronized() =0;
750 virtual
void setIsSynchronized(const
ItemGroup& item_group) =0;
755 static Int64 incrementModifiedTime();
760 virtual IVariableInternal* _internalApi() =0;
Déclarations de types sur les entités.
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 d'un sous-domaine.
Interface de la classe fonctor de recalcul d'une variable.
Interface du gestionnaire de variables.
virtual Real allocatedMemory() const =0
Taille mémoire (en Koctet) utilisée par la variable.
virtual eDataType dataType() const =0
Type de la donnée gérée par la variable (Real, Integer, ...)
eDependType
Type des dépendances.
virtual String fullName() const =0
Nom complet de la variable (avec le préfixe de la famille)
virtual int property() const =0
Retourne les propriétés de la variable.
virtual eItemKind itemKind() const =0
Type des entités du maillage sur lequel repose la variable.
virtual Integer nbReference() const =0
Nombre de références sur cette variable.
virtual ~IVariable()=default
Libère les ressources.
virtual Integer dimension() const =0
Dimension de la variable.
virtual void notifyReferencePropertyChanged()=0
Indique que les propriétés d'une des références à cette variable ont changé (interne)
virtual VariableRef * firstReference() const =0
Première réference (ou null) sur cette variable.
virtual Integer multiTag() const =0
Indique si la variable est un tableau à taille multiple.
virtual ISubDomain * subDomain()=0
Sous-domaine associé à la variable (TODO rendre obsolète fin 2023)
virtual Integer nbElement() const =0
Nombre d'éléments de la variable.
virtual void addVariableRef(VariableRef *var_ref)=0
Ajoute une référence à cette variable.
virtual String name() const =0
Nom de la variable.
virtual void removeVariableRef(VariableRef *var_ref)=0
Supprime une référence à cette variable.
virtual IVariableMng * variableMng() const =0
Gestionnaire de variable associé à la variable.
Groupe d'entités de maillage.
Informations sur une dépendance de variable.
Référence à une variable.
Classe de base des vecteurs 1D de données.
Vue constante d'un tableau de type T.
Interface d'un sérialiseur.
Chaîne de caractères unicode.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
eTraceType
Type de trace possible.
eItemKind
Genre d'entité de maillage.
eDataType
Type d'une donnée.