12#ifndef ARCANE_CORE_VARIABLEREF_H
13#define ARCANE_CORE_VARIABLEREF_H
17#include "arcane/utils/String.h"
19#include "arcane/core/IVariable.h"
20#include "arcane/core/VariableComputeFunction.h"
32class IVariableComputeFunction;
33class VariableBuildInfo;
34typedef VariableBuildInfo VariableBuilder;
100 virtual void print(std::ostream& o)
const;
108 virtual int property()
const;
111 virtual int referenceProperty()
const;
114 virtual void setProperty(
int property);
117 virtual void unsetProperty(
int property);
120 virtual void registerVariable();
123 virtual void unregisterVariable();
131 virtual Integer checkIfSync(
int max_print = 0);
137 virtual Integer checkIfSameOnAllReplica(
int max_print = 0);
140 virtual void updateFromInternal();
147 void setUsed(
bool v) { m_variable->setUsed(v); }
148 bool isUsed()
const {
return m_variable->isUsed(); }
150 virtual void internalSetUsed(
bool ) {}
166 void addTag(
const String& tagname,
const String& tagvalue);
171 void removeTag(
const String& tagname);
173 bool hasTag(
const String& tagname)
const;
204 Int64 modifiedTime();
213 void addDependPreviousTime(
const VariableRef& var);
228 template <
typename ClassType>
void
241 template <
typename ClassType>
void
274 static void setTraceCreation(
bool v);
275 static bool hasTraceCreation();
310 bool m_is_registered =
false;
313 int m_reference_property = 0;
326 String m_assignment_stack_trace;
330 void _executeUpdateFunctors();
332 bool m_has_trace =
false;
336 void _checkValid()
const
343 void _throwInvalid()
const;
344 bool _checkValidPropertyChanged(
int property);
345 void _setAssignmentStackTrace();
349 void _internalAssignVariable(
const VariableRef& var);
353 static bool m_static_has_trace_creation;
354 UpdateNotifyFunctorList* m_notify_functor_list =
nullptr;
368#include "arcane/VariableList.h"
Interface du gestionnaire d'un sous-domaine.
Interface de la classe fonctor de recalcul d'une variable.
Interface du gestionnaire de variables.
Paramètres nécessaires à la construction d'une variable.
Interface de la classe fonctor de recalcul d'une variable.
Classe interne pour gérer les fonctor appelés lors de la mise à jour de la variable.
Référence à une variable.
virtual IModule * module() const
Module associé à la variable (ou nullptr, s'il n'y en a pas)
void setComputeFunction(ClassType *instance, void(ClassType::*func)(), const TraceInfo &tinfo)
Positionne la fonction de recalcule de la variable.
IVariable * variable() const
Variable associée.
const String & assignmentStackTrace() const
Pile d'appel au moment de l'assignation de cette instance.
virtual Integer arraySize() const
Si la variable est un tableau, retourne sa dimension, sinon retourne 0.
void setComputeFunction(ClassType *instance, void(ClassType::*func)())
Positionne la fonction de recalcule de la variable.
IVariable * _variable() const
Variable référencée.
Chaîne de caractères unicode.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
eDataType
Type d'une donnée.