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"
113 bool isUsed() const override;
125 void notifyEndRead()
override;
126 void notifyBeginWrite()
override;
133 Integer nbReference()
const override;
137 void syncReferences()
override;
145 Integer dimension() const override;
146 Integer multiTag() const override;
158 void resize(
Integer n) override;
159 void resizeFromGroup() override;
172 void addTag(const
String& tagname, const
String& tagvalue) override;
173 void removeTag(const
String& tagname) override;
174 bool hasTag(const
String& tagname) override;
179 void update() override;
180 void setUpToDate() override;
181 Int64 modifiedTime() override;
182 void addDepend(
IVariable* var, eDependType dt) override;
184 void removeDepend(
IVariable* var) override;
189 void update(
Real wanted_time) override;
201 void _setProperty(
int property);
208 void _setData(
const Ref<IData>& data);
211 void _setValidData(
bool valid_data);
218 bool _hasValidData()
const;
222 virtual void _internalResize(
const VariableResizeArgs& resize_args) = 0;
224 void _checkSwapIsValid(Variable* rhs);
226 bool _wantShrink()
const;
229 friend class VariablePrivate;
230 void _resize(
const VariableResizeArgs& resize_args);
241 void _checkSetItemFamily();
242 void _checkSetItemGroup();
244 bool _hasReference()
const;
245 void _removeMeshReference();
259#include "arcane/core/VariableScalar.h"
260#include "arcane/core/VariableArray.h"
Declarations of Arcane's general types.
Base class for 1D data vectors.
Information on data allocation.
Interface of the data factory manager.
Interface of an operation on a data.
Interface for reading variable data.
Interface for writing variable data.
Interface of an entity family.
Interface of an observable.
Interface of the parallelism manager for a subdomain.
Interface of the subdomain manager.
Interface of the functor class for recalculating a variable.
Internal part of Ivariable.
Variable manager interface.
Reference to an instance.
Unicode character string.
TraceAccessor(ITraceMng *m)
Constructs an accessor via the trace manager m.
Parameters necessary for building a variable.
Arguments for VariableComparer methods.
Results of a comparison operation.
Information about a variable dependency.
Information characterizing a variable.
Arguments for resizing a variable.
String itemGroupName() const final
Name of the associated entity group.
bool isUsed() const override
Usage state of the variable.
Variable(const VariableBuildInfo &v, const VariableInfo &vi)
Creates a variable linked to the reference v.
bool isPartial() const override
Indicates if the variable is partial.
void notifyReferencePropertyChanged() override
IVariableMng * variableMng() const override
Variable manager associated with the variable.
String name() const final
Variable name.
virtual VariableComparerResults _compareVariable(const VariableComparerArgs &compare_args)=0
Comparison of values between variables.
bool initialize(const ItemGroup &, const String &) override
Initializes the variable on a group.
Variable(const Variable &from)=delete
Copy constructor (do not use).
void setUsed(bool v) override
Sets the usage state of the variable.
String fullName() const final
Full variable name (with family prefix).
ISubDomain * subDomain() override
Subdomain associated with the variable (TODO deprecate end of 2023).
VariablePrivate * m_p
Implementation.
String itemFamilyName() const final
Name of the associated family (null if none).
int property() const override
Variable & operator=(const Variable &from)=delete
Copy assignment operator (do not use).
String meshName() const final
Name of the associated mesh (null if none).
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --
std::int64_t Int64
Signed integer type of 64 bits.
Int32 Integer
Type representing an integer.
ConstArrayView< Int32 > Int32ConstArrayView
C equivalent of a 1D array of 32-bit integers.
eTraceType
Possible trace type.
eItemKind
Mesh entity type.
double Real
Type representing a real number.
std::int32_t Int32
Signed integer type of 32 bits.