14#include "arcane/core/VariableRefArray.h"
16#include "arcane/utils/ITraceMng.h"
17#include "arcane/utils/FatalErrorException.h"
19#include "arcane/core/VariableArray.h"
20#include "arcane/core/VariableRefArrayLock.h"
21#include "arcane/core/VariableBuildInfo.h"
22#include "arcane/core/VariableInfo.h"
23#include "arcane/core/VariableDataTypeTraits.h"
24#include "arcane/core/ISubDomain.h"
25#include "arcane/core/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>
80template <
typename DataType>
86 this->_internalInit(m_private_part);
92template <
class DataType>
97, m_private_part(
rhs.m_private_part)
105template <
class DataType>
111 this->_internalInit(this->m_private_part);
117template <
class DataType>
121 VariableRef::operator=(
rhs);
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>
160template <
typename DataType>
164 ArrayBase::setArray(m_private_part->valueView());
165 BaseClass::updateFromInternal();
171template <
typename DataType>
176 return LockType(m_private_part->trueData()->_internal()->_internalDeprecatedValue(), m_private_part);
183typename VariableRefArrayT<T>::ContainerType&
187 return _internalTrueData()->_internalDeprecatedValue();
197 if (!(property() & IVariable::PPrivate))
198 ARCANE_FATAL(
"variable '{0}': getting internal data container is only valid on private variable", name());
199 return m_private_part->trueData()->_internal();
205ARCANE_INTERNAL_INSTANTIATE_TEMPLATE_FOR_NUMERIC_DATATYPE(VariableRefArrayT);
206template class VariableRefArrayT<String>;
#define ARCANE_FATAL(...)
Macro envoyant une exception FatalErrorException.
Paramètres nécessaires à la construction d'une variable.
void updateFromInternal() override
Mise à jour à partir de la partie interne.
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.
virtual void resize(Integer new_size)
Redimensionne le tableau pour contenir new_size éléments.
void refersTo(const VariableRefArrayT< DataType > &rhs)
Positionne la référence de l'instance à la variable rhs.
Référence à une variable.
Vue modifiable d'un tableau d'un type T.
Référence à une instance.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
Int32 Integer
Type représentant un entier.