Fonctions membres publiques | |
VariablePrivate (const VariableBuildInfo &v, const VariableInfo &vi, Variable *var) | |
void | serializeHashId (ISerializer *sbuf) |
Sérialise le hashid . | |
Implémentation de IVariableInternal | |
String | computeComparisonHashCollective (IHashAlgorithm *hash_algo, IData *sorted_data) override |
Calcule de Hash de comparaison pour la variable. | |
void | changeAllocator (const MemoryAllocationOptions &alloc_info) override |
Change l'allocateur de la variable. | |
void | resizeWithReserve (Int32 new_size, Int32 additional_capacity) override |
Redimensionne la variable en ajoutant une capacité additionnelle. | |
Attributs publics | |
ISubDomain * | m_sub_domain = nullptr |
IDataFactoryMng * | m_data_factory_mng = nullptr |
MeshHandle | m_mesh_handle |
Maillage (peut être nul) | |
Ref< IData > | m_data |
Données de la variable. | |
ItemGroup | m_item_group |
Groupe d'entité sur lequel est associé la variable. | |
IItemFamily * | m_item_family = nullptr |
Familly d'entité (peut être nul) | |
VariableInfo | m_infos |
Infos caractéristiques de la variable. | |
int | m_property = 0 |
Propriétés de la variable. | |
bool | m_is_partial = false |
Vrai si la variable est partielle. | |
bool | m_need_property_update = false |
bool | m_is_used = false |
Etat d'utilisation de la variable. | |
bool | m_has_valid_data = false |
Vrai si les données sont valide. | |
Real | m_last_update_time = 0.0 |
Temps physique de la dernière mise à jour. | |
VariableRef * | m_first_reference = nullptr |
Integer | m_nb_reference = 0 |
Première référence sur la variable. | |
UniqueArray< VariableDependInfo > | m_depends |
Liste des dépendances de cette variable. | |
Int64 | m_modified_time = 0 |
Tag de la dernière modification. | |
ScopedPtrT< IVariableComputeFunction > | m_compute_function |
Fonction de calcul. | |
AutoDetachObservable | m_write_observable |
Observable en écriture. | |
AutoDetachObservable | m_read_observable |
Observable en lecture. | |
AutoDetachObservable | m_on_size_changed_observable |
Observable en redimensionnement. | |
std::map< String, String > | m_tags |
Liste des tags. | |
bool | m_has_recursive_depend = true |
Vrai si les dépendances sont récursives. | |
bool | m_want_shrink = false |
Variable * | m_variable = nullptr |
Variable associée. | |
Attributs publics statiques | |
static std::atomic< Int64 > | modified_time_global_value = 1 |
Fonctions membres privées | |
void | _setHashId () |
Attributs privés | |
Byte | m_hash_id [HASHID_SIZE] |
hash de la variable pour vérifier la cohérence de la sérialisation. | |
Attributs privés statiques | |
static const int | HASHID_SIZE = 64 |
Définition à la ligne 77 du fichier Variable.cc.
Arcane::VariablePrivate::VariablePrivate | ( | const VariableBuildInfo & | v, |
const VariableInfo & | vi, | ||
Variable * | var | ||
) |
Définition à la ligne 207 du fichier Variable.cc.
|
inlineprivate |
Définition à la ligne 171 du fichier Variable.cc.
|
overridevirtual |
Change l'allocateur de la variable.
Actuellemt valide uniquement pour les variables 1D. Ne fait rien pour les autres.
Implémente Arcane::IVariableInternal.
Définition à la ligne 1431 du fichier Variable.cc.
Références m_data, m_variable, et Arcane::Variable::syncReferences().
|
overridevirtual |
Calcule de Hash de comparaison pour la variable.
sorted_data doit être trié en fonction des uniqueId() et aussi par rang du IParallelMng associé à la variable.
Cette méthode est collective mais seul le rang maitre (celui pour lequel IParallelMng::isMasterIO() est vrai) retourne un hash valide. Les autres retournent une chaîne nulle.
Retourn aussi une chaîne nulle si la donnée n'est pas numérique (si sorted_data->_commonInternal()->numericData()==nullptr) ou si la variable n'est pas associée à une entité du maillage.
Implémente Arcane::IVariableInternal.
Définition à la ligne 1397 du fichier Variable.cc.
Références ARCANE_CHECK_POINTER, Arcane::IParallelMng::commRank(), Arcane::IParallelMng::gatherVariable(), m_item_family, Arcane::IParallelMng::masterIORank(), Arcane::IItemFamily::parallelMng(), et Arcane::Convert::toHexaString().
|
overridevirtual |
Redimensionne la variable en ajoutant une capacité additionnelle.
Implémente Arcane::IVariableInternal.
Définition à la ligne 1444 du fichier Variable.cc.
Références m_variable.
|
inline |
Sérialise le hashid
.
Lors de la désérialisation, vérifie que le hashid
est correctement et si ce n'est pas le cas renvoie une exception.
Définition à la ligne 124 du fichier Variable.cc.
Références ARCANE_FATAL, Arcane::DT_Byte, Arcane::VariableInfo::fullName(), m_hash_id, m_infos, Arccore::ISerializer::ModeGet, et Arccore::ISerializer::ModePut.
Référencé par Arcane::Variable::serialize(), et Arcane::Variable::serialize().
|
staticprivate |
Définition à la ligne 161 du fichier Variable.cc.
ScopedPtrT<IVariableComputeFunction> Arcane::VariablePrivate::m_compute_function |
Fonction de calcul.
Définition à la ligne 107 du fichier Variable.cc.
Référencé par Arcane::Variable::computeFunction(), et Arcane::Variable::setComputeFunction().
Données de la variable.
Définition à la ligne 93 du fichier Variable.cc.
Référencé par Arcane::Variable::_setData(), changeAllocator(), Arcane::Variable::serialize(), Arcane::Variable::serialize(), et Arcane::Variable::setUsed().
IDataFactoryMng* Arcane::VariablePrivate::m_data_factory_mng = nullptr |
Définition à la ligne 91 du fichier Variable.cc.
UniqueArray<VariableDependInfo> Arcane::VariablePrivate::m_depends |
Liste des dépendances de cette variable.
Définition à la ligne 105 du fichier Variable.cc.
Référencé par Arcane::Variable::addDepend(), Arcane::Variable::addDepend(), et Arcane::Variable::dependInfos().
VariableRef* Arcane::VariablePrivate::m_first_reference = nullptr |
Définition à la ligne 103 du fichier Variable.cc.
Vrai si les dépendances sont récursives.
Définition à la ligne 112 du fichier Variable.cc.
Vrai si les données sont valide.
Définition à la ligne 101 du fichier Variable.cc.
Référencé par Arcane::Variable::_hasValidData(), Arcane::Variable::_setValidData(), et Arcane::Variable::setUsed().
|
private |
hash de la variable pour vérifier la cohérence de la sérialisation.
Les 16 premiers octets sont le hash du nom au format hexadécimal (issu d'un Int64) et les suivants sont le nom complet (fullName()), éventuellement tronqué, de la variable. Les éventuels caractères restants sont des '~'.
Définition à la ligne 169 du fichier Variable.cc.
Référencé par serializeHashId().
VariableInfo Arcane::VariablePrivate::m_infos |
Infos caractéristiques de la variable.
Définition à la ligne 96 du fichier Variable.cc.
Référencé par Arcane::Variable::_setData(), Arcane::Variable::dataType(), Arcane::Variable::dimension(), Arcane::Variable::fullName(), Arcane::Variable::itemFamilyName(), Arcane::Variable::itemGroupName(), Arcane::Variable::itemKind(), Arcane::Variable::meshName(), Arcane::Variable::multiTag(), Arcane::Variable::name(), et serializeHashId().
Vrai si la variable est partielle.
Définition à la ligne 98 du fichier Variable.cc.
Référencé par Arcane::Variable::isPartial().
Etat d'utilisation de la variable.
Définition à la ligne 100 du fichier Variable.cc.
Référencé par Arcane::Variable::_checkSwapIsValid(), Arcane::Variable::isUsed(), et Arcane::Variable::setUsed().
IItemFamily* Arcane::VariablePrivate::m_item_family = nullptr |
Familly d'entité (peut être nul)
Définition à la ligne 95 du fichier Variable.cc.
Référencé par computeComparisonHashCollective(), Arcane::Variable::itemFamily(), et Arcane::Variable::resizeFromGroup().
ItemGroup Arcane::VariablePrivate::m_item_group |
Groupe d'entité sur lequel est associé la variable.
Définition à la ligne 94 du fichier Variable.cc.
Référencé par Arcane::Variable::itemGroup(), Arcane::Variable::resizeFromGroup(), et Arcane::Variable::setUsed().
Real Arcane::VariablePrivate::m_last_update_time = 0.0 |
Temps physique de la dernière mise à jour.
Définition à la ligne 102 du fichier Variable.cc.
Référencé par Arcane::Variable::setUpToDate().
MeshHandle Arcane::VariablePrivate::m_mesh_handle |
Maillage (peut être nul)
Définition à la ligne 92 du fichier Variable.cc.
Référencé par Arcane::Variable::mesh(), et Arcane::Variable::meshHandle().
Int64 Arcane::VariablePrivate::m_modified_time = 0 |
Tag de la dernière modification.
Définition à la ligne 106 du fichier Variable.cc.
Référencé par Arcane::Variable::modifiedTime(), et Arcane::Variable::setUpToDate().
Integer Arcane::VariablePrivate::m_nb_reference = 0 |
Première référence sur la variable.
Définition à la ligne 104 du fichier Variable.cc.
Référencé par Arcane::Variable::addVariableRef(), Arcane::Variable::nbReference(), et Arcane::Variable::removeVariableRef().
Définition à la ligne 99 du fichier Variable.cc.
AutoDetachObservable Arcane::VariablePrivate::m_on_size_changed_observable |
Observable en redimensionnement.
Définition à la ligne 110 du fichier Variable.cc.
Référencé par Arcane::Variable::onSizeChangedObservable().
int Arcane::VariablePrivate::m_property = 0 |
Propriétés de la variable.
Définition à la ligne 97 du fichier Variable.cc.
Référencé par Arcane::Variable::property().
AutoDetachObservable Arcane::VariablePrivate::m_read_observable |
Observable en lecture.
Définition à la ligne 109 du fichier Variable.cc.
Référencé par Arcane::Variable::readObservable().
ISubDomain* Arcane::VariablePrivate::m_sub_domain = nullptr |
Définition à la ligne 90 du fichier Variable.cc.
Liste des tags.
Définition à la ligne 111 du fichier Variable.cc.
Référencé par Arcane::Variable::addTag(), Arcane::Variable::hasTag(), Arcane::Variable::removeTag(), et Arcane::Variable::tagValue().
Variable associée.
Définition à la ligne 114 du fichier Variable.cc.
Référencé par changeAllocator(), et resizeWithReserve().
Définition à la ligne 113 du fichier Variable.cc.
AutoDetachObservable Arcane::VariablePrivate::m_write_observable |
Observable en écriture.
Définition à la ligne 108 du fichier Variable.cc.
Référencé par Arcane::Variable::writeObservable().
|
static |
Définition à la ligne 86 du fichier Variable.cc.