Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
Référence de la classe Arcane::VariableRef

Référence à une variable. Plus de détails...

#include <arcane/core/VariableRef.h>

+ Graphe d'héritage de Arcane::VariableRef:
+ Graphe de collaboration de Arcane::VariableRef:

Classes

class  UpdateNotifyFunctorList
 Classe interne pour gérer les fonctor appelés lors de la mise à jour de la variable. Plus de détails...
 

Fonctions membres publiques

virtual ~VariableRef ()
 Libère les ressources.
 
ISubDomainsubDomain () const
 Sous-domaine associé à la variable (TODO rendre obsolète fin 2023)
 
IVariableMngvariableMng () const
 Gestionnaire de variable associé à la variable.
 
String name () const
 Nom de la variable.
 
virtual eDataType dataType () const
 Type de la variable (Real, Integer, ...)
 
virtual void print (std::ostream &o) const
 Affiche la valeur de la variable.
 
virtual IModulemodule () const
 Module associé à la variable (ou nullptr, s'il n'y en a pas)
 
virtual int property () const
 Propriétés de la variable.
 
virtual int referenceProperty () const
 Propriétés de la référence (interne)
 
virtual void setProperty (int property)
 Positionne la propriété property.
 
virtual void unsetProperty (int property)
 Supprime la propriété property.
 
virtual void registerVariable ()
 Enregistre la variable (interne)
 
virtual void unregisterVariable ()
 Supprime l'enregistrement de la variable (interne)
 
IVariablevariable () const
 Variable associée.
 
virtual Integer checkIfSync (int max_print=0)
 Vérifie si la variable est bien synchronisée.
 
virtual Integer checkIfSameOnAllReplica (int max_print=0)
 Vérifie si la variable a les mêmes valeurs sur tous les réplicas.
 
virtual void updateFromInternal ()
 Mise à jour à partir de la partie interne.
 
virtual Integer arraySize () const
 Si la variable est un tableau, retourne sa dimension, sinon retourne 0.
 
void setUsed (bool v)
 
bool isUsed () const
 
virtual void internalSetUsed (bool)
 
const StringassignmentStackTrace () const
 Pile d'appel au moment de l'assignation de cette instance.
 
void addTag (const String &tagname, const String &tagvalue)
 Ajoute le tag tagname avev la valeur tagvalue.
 
void removeTag (const String &tagname)
 Supprime le tag tagname.
 
bool hasTag (const String &tagname) const
 true si la variable possède le tag tagname
 
String tagValue (const String &tagname) const
 Valeur du tag tagname. La chaîne est nulle si le tag n'existe pas.
 

Fonctions membres protégées

 VariableRef (const VariableBuildInfo &vbi)
 Construit une référence sur une variable avec les infos vbi.
 
 VariableRef (const VariableRef &from)
 Constructeur de copie.
 
 VariableRef (IVariable *var)
 Construit une référence sur une variable var.
 
VariableRefoperator= (const VariableRef &from)
 Opérateur de recopie.
 
 VariableRef ()
 Constructeur vide.
 

Amis

class UpdateNotifyFunctorList
 

Gestion des dépendances

Opérations liées à la gestion des dépendances des variables.

bool m_has_trace = false
 
void _setComputeFunction (IVariableComputeFunction *v)
 
void _internalInit (IVariable *)
 Initialisation interne de la variable.
 
IVariable_variable () const
 Variable référencée.
 
void _executeUpdateFunctors ()
 
void _internalAssignVariable (const VariableRef &var)
 
void update ()
 Recalcule la variable si nécessaire.
 
void setUpToDate ()
 Indique que la variable vient d'être mise à jour.
 
Int64 modifiedTime ()
 Temps auquel la variable a été mise à jour.
 
void addDependCurrentTime (const VariableRef &var)
 Ajoute var à la liste des dépendances au temps courant.
 
void addDependCurrentTime (const VariableRef &var, const TraceInfo &tinfo)
 Ajoute var à la liste des dépendances au temps courant avec les infos de trace tinfo.
 
void addDependPreviousTime (const VariableRef &var)
 Ajoute var à la liste des dépendances au temps précédent.
 
void addDependPreviousTime (const VariableRef &var, const TraceInfo &tinfo)
 Ajoute var à la liste des dépendances au temps précédent avec les infos de trace tinfo.
 
void removeDepend (const VariableRef &var)
 Supprime var de la liste des dépendances.
 
template<typename ClassType >
void setComputeFunction (ClassType *instance, void(ClassType::*func)())
 Positionne la fonction de recalcule de la variable.
 
template<typename ClassType >
void setComputeFunction (ClassType *instance, void(ClassType::*func)(), const TraceInfo &tinfo)
 Positionne la fonction de recalcule de la variable.
 
VariableRefpreviousReference ()
 Référence précédente (ou null) sur variable()
 
VariableRefnextReference ()
 Référence suivante (ou null) sur variable()
 
void setPreviousReference (VariableRef *v)
 
void setNextReference (VariableRef *v)
 
static void setTraceCreation (bool v)
 
static bool hasTraceCreation ()
 

Description détaillée

Référence à une variable.

Cette classe gère une référence sur une variable (IVariable).

Si la variable n'est pas associée à un module, la méthode module() retourne 0.

Cette classe doit obligatoirement être dérivée.

La classe la plus dérivée de cette classe doit appeler _internalInit() dans son constructeur. Elle seule doit le faire, et dans le constructeur pour garantir que la référence à la variable est valide dès que l'objet est construit et que les méthodes virtuelles qui doivent être appelés lors de cette initialisation correspondent à l'instance en cours de création.

Définition à la ligne 55 du fichier VariableRef.h.

Documentation des constructeurs et destructeur

◆ VariableRef() [1/4]

Arcane::VariableRef::VariableRef ( const VariableBuildInfo vbi)
explicitprotected

Construit une référence sur une variable avec les infos vbi.

Définition à la ligne 125 du fichier VariableRef.cc.

◆ VariableRef() [2/4]

Arcane::VariableRef::VariableRef ( const VariableRef from)
protected

Constructeur de copie.

Définition à la ligne 165 du fichier VariableRef.cc.

Références registerVariable().

◆ VariableRef() [3/4]

Arcane::VariableRef::VariableRef ( IVariable var)
explicitprotected

Construit une référence sur une variable var.

Définition à la ligne 138 du fichier VariableRef.cc.

◆ VariableRef() [4/4]

Arcane::VariableRef::VariableRef ( )
protected

Constructeur vide.

Constructeur pour une variable non enregistree.

Ce constructeur n'est utilise que pour le wrapping C#. En C++, il n'est pas accessible pour être sur que l'utilisateur n'a pas de variables non référencées

Définition à la ligne 157 du fichier VariableRef.cc.

◆ ~VariableRef()

Arcane::VariableRef::~VariableRef ( )
virtual

Libère les ressources.

Définition à la ligne 196 du fichier VariableRef.cc.

Références unregisterVariable().

Documentation des fonctions membres

◆ _executeUpdateFunctors()

void Arcane::VariableRef::_executeUpdateFunctors ( )
protected

Définition à la ligne 604 du fichier VariableRef.cc.

◆ _internalAssignVariable()

void Arcane::VariableRef::_internalAssignVariable ( const VariableRef var)
protected

Définition à la ligne 614 du fichier VariableRef.cc.

◆ _internalInit()

void Arcane::VariableRef::_internalInit ( IVariable variable)
protected

Initialisation interne de la variable.

Avertissement
Cette méthode doit obligatoirement être appelée dans le constructeur de la classe dérivée avant toute utilisation de la référence.

Définition à la ligne 248 du fichier VariableRef.cc.

Références Arcane::IK_Unknown, Arcane::IVariable::itemKind(), registerVariable(), updateFromInternal(), et variable().

Référencé par Arcane::VariableRefArray2T< T >::VariableRefArray2T(), Arcane::VariableRefArray2T< T >::VariableRefArray2T(), Arcane::VariableRefScalarT< DataType >::VariableRefScalarT(), et Arcane::VariableRefScalarT< DataType >::VariableRefScalarT().

◆ _setComputeFunction()

void Arcane::VariableRef::_setComputeFunction ( IVariableComputeFunction v)
protected

Définition à la ligne 497 du fichier VariableRef.cc.

◆ _variable()

IVariable * Arcane::VariableRef::_variable ( ) const
inlineprotected

Variable référencée.

Cette méthode vérifie qu'une variable est bien référencée.

Définition à la ligne 295 du fichier VariableRef.h.

◆ addDependCurrentTime() [1/2]

void Arcane::VariableRef::addDependCurrentTime ( const VariableRef var)

Ajoute var à la liste des dépendances au temps courant.

Définition à la ligne 452 du fichier VariableRef.cc.

Références Arcane::IVariable::addDepend(), et variable().

◆ addDependCurrentTime() [2/2]

void Arcane::VariableRef::addDependCurrentTime ( const VariableRef var,
const TraceInfo tinfo 
)

Ajoute var à la liste des dépendances au temps courant avec les infos de trace tinfo.

Définition à la ligne 470 du fichier VariableRef.cc.

Références Arcane::IVariable::addDepend(), et variable().

◆ addDependPreviousTime() [1/2]

void Arcane::VariableRef::addDependPreviousTime ( const VariableRef var)

Ajoute var à la liste des dépendances au temps précédent.

Définition à la ligne 461 du fichier VariableRef.cc.

Références Arcane::IVariable::addDepend(), et variable().

◆ addDependPreviousTime() [2/2]

void Arcane::VariableRef::addDependPreviousTime ( const VariableRef var,
const TraceInfo tinfo 
)

Ajoute var à la liste des dépendances au temps précédent avec les infos de trace tinfo.

Définition à la ligne 479 du fichier VariableRef.cc.

Références Arcane::IVariable::addDepend(), et variable().

◆ addTag()

void Arcane::VariableRef::addTag ( const String tagname,
const String tagvalue 
)

Ajoute le tag tagname avev la valeur tagvalue.

Définition à la ligne 506 du fichier VariableRef.cc.

Références Arcane::IVariable::addTag().

◆ arraySize()

◆ assignmentStackTrace()

const String & Arcane::VariableRef::assignmentStackTrace ( ) const
inline

Pile d'appel au moment de l'assignation de cette instance.

La pile n'est accessible qu'en mode vérification ou débug. Si ce n'est pas le cas, retourne une chaîne nulle.

Définition à la ligne 160 du fichier VariableRef.h.

◆ checkIfSameOnAllReplica()

Integer Arcane::VariableRef::checkIfSameOnAllReplica ( int  max_print = 0)
virtual

Vérifie si la variable a les mêmes valeurs sur tous les réplicas.

Voir également
IVariable::checkIfSameOnAllReplica()

Définition à la ligne 333 du fichier VariableRef.cc.

Références Arcane::IVariable::checkIfSameOnAllReplica().

◆ checkIfSync()

Integer Arcane::VariableRef::checkIfSync ( int  max_print = 0)
virtual

Vérifie si la variable est bien synchronisée.

Voir également
IVariable::checkIfSync()

Définition à la ligne 323 du fichier VariableRef.cc.

Références Arcane::IVariable::checkIfSync().

◆ dataType()

eDataType Arcane::VariableRef::dataType ( ) const
virtual

Type de la variable (Real, Integer, ...)

Définition à la ligne 263 du fichier VariableRef.cc.

Références Arcane::IVariable::dataType().

◆ hasTag()

bool Arcane::VariableRef::hasTag ( const String tagname) const

true si la variable possède le tag tagname

Définition à la ligne 524 du fichier VariableRef.cc.

Références Arcane::IVariable::hasTag().

◆ hasTraceCreation()

bool Arcane::VariableRef::hasTraceCreation ( )
static

Définition à la ligne 595 du fichier VariableRef.cc.

◆ internalSetUsed()

virtual void Arcane::VariableRef::internalSetUsed ( bool  )
inlinevirtual

Définition à la ligne 150 du fichier VariableRef.h.

◆ isUsed()

bool Arcane::VariableRef::isUsed ( ) const
inline

Définition à la ligne 148 du fichier VariableRef.h.

◆ modifiedTime()

Int64 Arcane::VariableRef::modifiedTime ( )

Temps auquel la variable a été mise à jour.

Définition à la ligne 443 du fichier VariableRef.cc.

Références Arcane::IVariable::modifiedTime().

◆ module()

virtual IModule * Arcane::VariableRef::module ( ) const
inlinevirtual

Module associé à la variable (ou nullptr, s'il n'y en a pas)

Définition à la ligne 104 du fichier VariableRef.h.

◆ name()

String Arcane::VariableRef::name ( ) const

Nom de la variable.

Définition à la ligne 283 du fichier VariableRef.cc.

Références Arcane::IVariable::name().

Référencé par Arcane::ModuleMaster::dumpStandardCurves().

◆ nextReference()

VariableRef * Arcane::VariableRef::nextReference ( )

Référence suivante (ou null) sur variable()

Définition à la ligne 551 du fichier VariableRef.cc.

Référencé par Arcane::Variable::removeVariableRef().

◆ operator=()

VariableRef & Arcane::VariableRef::operator= ( const VariableRef from)
protected

◆ previousReference()

VariableRef * Arcane::VariableRef::previousReference ( )

Référence précédente (ou null) sur variable()

Définition à la ligne 542 du fichier VariableRef.cc.

Référencé par Arcane::Variable::addVariableRef(), et Arcane::Variable::removeVariableRef().

◆ print()

void Arcane::VariableRef::print ( std::ostream &  o) const
virtual

Affiche la valeur de la variable.

Définition à la ligne 273 du fichier VariableRef.cc.

Références Arcane::IVariable::print().

◆ property()

int Arcane::VariableRef::property ( ) const
virtual

Propriétés de la variable.

Définition à la ligne 293 du fichier VariableRef.cc.

Références Arcane::IVariable::property().

Référencé par setProperty(), et unsetProperty().

◆ referenceProperty()

int Arcane::VariableRef::referenceProperty ( ) const
virtual

Propriétés de la référence (interne)

Définition à la ligne 343 du fichier VariableRef.cc.

Référencé par Arcane::Variable::property().

◆ registerVariable()

void Arcane::VariableRef::registerVariable ( )
virtual

Enregistre la variable (interne)

Définition à la ligne 237 du fichier VariableRef.cc.

Références Arcane::IVariable::addVariableRef().

Référencé par _internalInit(), et VariableRef().

◆ removeDepend()

void Arcane::VariableRef::removeDepend ( const VariableRef var)

Supprime var de la liste des dépendances.

Définition à la ligne 488 du fichier VariableRef.cc.

Références Arcane::IVariable::removeDepend(), et variable().

◆ removeTag()

void Arcane::VariableRef::removeTag ( const String tagname)

Supprime le tag tagname.

Si le tag tagname n'est pas dans la liste, rien ne se passe.

Définition à la ligne 515 du fichier VariableRef.cc.

Références Arcane::IVariable::removeTag().

◆ setComputeFunction() [1/2]

template<typename ClassType >
void Arcane::VariableRef::setComputeFunction ( ClassType *  instance,
void(ClassType::*)()  func 
)
inline

Positionne la fonction de recalcule de la variable.

Si une fonction de recalcule existait déjà, elle est détruite et remplacée par celle-ci.

Définition à la ligne 229 du fichier VariableRef.h.

◆ setComputeFunction() [2/2]

template<typename ClassType >
void Arcane::VariableRef::setComputeFunction ( ClassType *  instance,
void(ClassType::*)()  func,
const TraceInfo tinfo 
)
inline

Positionne la fonction de recalcule de la variable.

Si une fonction de recalcule existait déjà, elle est détruite et remplacée par celle-ci. tinfo contient les infos permettant de savoir où est défini la fonction (pour le débug)

Définition à la ligne 242 du fichier VariableRef.h.

◆ setNextReference()

void Arcane::VariableRef::setNextReference ( VariableRef v)

Définition à la ligne 569 du fichier VariableRef.cc.

◆ setPreviousReference()

void Arcane::VariableRef::setPreviousReference ( VariableRef v)

Définition à la ligne 560 du fichier VariableRef.cc.

◆ setProperty()

void Arcane::VariableRef::setProperty ( int  property)
virtual

Positionne la propriété property.

Définition à la ligne 370 du fichier VariableRef.cc.

Références Arcane::IVariable::notifyReferencePropertyChanged(), et property().

◆ setTraceCreation()

void Arcane::VariableRef::setTraceCreation ( bool  v)
static

Définition à la ligne 586 du fichier VariableRef.cc.

◆ setUpToDate()

void Arcane::VariableRef::setUpToDate ( )

Indique que la variable vient d'être mise à jour.

Pour une gestion correcte des dépendances, il faut que cette propriété soit appelée toutes les fois où la mise à jour d'une variable a été effectuée.

Définition à la ligne 434 du fichier VariableRef.cc.

Références Arcane::IVariable::setUpToDate().

◆ setUsed()

void Arcane::VariableRef::setUsed ( bool  v)
inline

Définition à la ligne 147 du fichier VariableRef.h.

◆ subDomain()

ISubDomain * Arcane::VariableRef::subDomain ( ) const

Sous-domaine associé à la variable (TODO rendre obsolète fin 2023)

Définition à la ligne 303 du fichier VariableRef.cc.

Références Arcane::IVariable::subDomain().

◆ tagValue()

String Arcane::VariableRef::tagValue ( const String tagname) const

Valeur du tag tagname. La chaîne est nulle si le tag n'existe pas.

Définition à la ligne 533 du fichier VariableRef.cc.

Références Arcane::IVariable::tagValue().

◆ unregisterVariable()

void Arcane::VariableRef::unregisterVariable ( )
virtual

Supprime l'enregistrement de la variable (interne)

Définition à la ligne 226 du fichier VariableRef.cc.

Références Arcane::IVariable::removeVariableRef().

Référencé par ~VariableRef().

◆ unsetProperty()

void Arcane::VariableRef::unsetProperty ( int  property)
virtual

Supprime la propriété property.

Définition à la ligne 382 du fichier VariableRef.cc.

Références Arcane::IVariable::notifyReferencePropertyChanged(), et property().

◆ update()

void Arcane::VariableRef::update ( )

Recalcule la variable si nécessaire.

Par le mécanisme de dépendances, cette opération est appelée récursivement sur toutes les variables dont dépend l'instance. La fonction de recalcul computeFunction() est ensuite appelée s'il s'avère qu'une des variables dont elle dépend a été modifiée plus récemment.

Définition à la ligne 425 du fichier VariableRef.cc.

Références Arcane::IVariable::update().

◆ updateFromInternal()

◆ variable()

◆ variableMng()

IVariableMng * Arcane::VariableRef::variableMng ( ) const

Gestionnaire de variable associé à la variable.

Définition à la ligne 313 du fichier VariableRef.cc.

Références Arcane::IVariable::variableMng().

Documentation des fonctions amies et associées

◆ UpdateNotifyFunctorList

friend class UpdateNotifyFunctorList
friend

Définition à la ligne 60 du fichier VariableRef.h.

Documentation des données membres

◆ m_has_trace

bool Arcane::VariableRef::m_has_trace = false
protected

Définition à la ligne 332 du fichier VariableRef.h.


La documentation de cette classe a été générée à partir des fichiers suivants :