14#include "arcane/VariableRefArray.h"
16#include "arcane/utils/ITraceMng.h"
17#include "arcane/utils/FatalErrorException.h"
19#include "arcane/VariableArray.h"
20#include "arcane/VariableRefArrayLock.h"
21#include "arcane/VariableBuildInfo.h"
22#include "arcane/VariableInfo.h"
23#include "arcane/VariableDataTypeTraits.h"
24#include "arcane/ISubDomain.h"
25#include "arcane/VariableFactoryRegisterer.h"
26#include "arcane/core/internal/IDataInternal.h"
37template <
typename DataType>
38VariableFactoryRegisterer
39VariableRefArrayT<DataType>::
40m_auto_registerer(_autoCreate, _internalVariableTypeInfo());
45template <
typename DataType>
47VariableRefArrayT<DataType>::
48_internalVariableTypeInfo()
50 return VariableTypeInfo(
IK_Unknown, VariableDataTypeTraitsT<DataType>::type(), 1, 0,
false);
56template <
typename DataType>
58VariableRefArrayT<DataType>::
59_internalVariableInfo(
const VariableBuildInfo& vbi)
61 VariableTypeInfo vti = _internalVariableTypeInfo();
62 DataStorageTypeInfo sti = vti._internalDefaultDataStorage();
63 return VariableInfo(vbi.name(), vbi.itemFamilyName(), vbi.itemGroupName(), vbi.meshName(), vti, sti);
69template <
typename DataType>
74 return new ThatClass(vb);
80template <
typename DataType>
84, m_private_part(PrivatePartType::getReference(vbi, _internalVariableInfo(vbi)))
86 this->_internalInit(m_private_part);
92template <
class DataType>
97, m_private_part(rhs.m_private_part)
105template <
class DataType>
109, m_private_part(PrivatePartType::getReference(var))
111 this->_internalInit(this->m_private_part);
117template <
class DataType>
122 m_private_part = rhs.m_private_part;
123 updateFromInternal();
131template <
typename DataType>
140template <
typename DataType>
144 m_private_part->resize(s);
150template <
typename DataType>
154 m_private_part->resizeWithReserve(s, nb_additional);
160template <
typename DataType>
164 ArrayBase::setArray(m_private_part->valueView());
165 BaseClass::updateFromInternal();
171template <
typename DataType>
172typename VariableRefArrayT<DataType>::LockType
176 return LockType(m_private_part->trueData()->_internal()->_internalDeprecatedValue(), m_private_part);
187 return _internalTrueData()->_internalDeprecatedValue();
198 ARCANE_FATAL(
"variable '{0}': getting internal data container is only valid on private variable", name());
199 return m_private_part->trueData()->_internal();
205template class VariableRefArrayT<Byte>;
206template class VariableRefArrayT<Real>;
207template class VariableRefArrayT<Int16>;
208template class VariableRefArrayT<Int32>;
209template class VariableRefArrayT<Int64>;
210template class VariableRefArrayT<String>;
211template class VariableRefArrayT<Real2>;
212template class VariableRefArrayT<Real3>;
213template class VariableRefArrayT<Real2x2>;
214template class VariableRefArrayT<Real3x3>;
#define ARCANE_FATAL(...)
Macro envoyant une exception FatalErrorException.
@ PPrivate
Indique que la variable est privée.
Paramètres nécessaires à la construction d'une variable.
void updateFromInternal() override
Mise à jour à partir de la partie interne.
ContainerType & internalContainer()
Retourne le conteneur des valeurs de cette variable.
VariableRefArrayT(const VariableBuildInfo &vb)
Construit une référence à une variable tableau spécifiée dans vb.
virtual void resizeWithReserve(Integer new_size, Integer nb_additional)
Redimensionne le tableau pour contenir new_size éléments.
~VariableRefArrayT() override
Libère les ressources.
virtual void resize(Integer new_size)
Redimensionne le tableau pour contenir new_size éléments.
Array< DataType > ContainerType
Type de la classe gérant la valeur de la variable.
void refersTo(const VariableRefArrayT< DataType > &rhs)
Positionne la référence de l'instance à la variable rhs.
Référence à une variable.
VariableRef & operator=(const VariableRef &from)
Opérateur de recopie.
Vue modifiable d'un tableau d'un type T.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
@ IK_Unknown
Entité de maillage de genre inconnu ou non initialisé