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 | resize (const VariableResizeArgs &resize_args) override |
Redimensionne la variable en ajoutant une capacité additionnelle. | |
VariableComparerResults | compareVariable (const VariableComparerArgs &compare_args) override |
Applique la méthode de comparaison spécifiée par compare_args. | |
IParallelMng * | replicaParallelMng () const |
Retourne le IParallelMng du replica du maillage associé à la variable. | |
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 78 du fichier Variable.cc.
Arcane::VariablePrivate::VariablePrivate | ( | const VariableBuildInfo & | v, |
const VariableInfo & | vi, | ||
Variable * | var ) |
Définition à la ligne 208 du fichier Variable.cc.
|
inlineprivate |
Définition à la ligne 172 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 1450 du fichier Variable.cc.
Références Arcane::INumericDataInternal::changeAllocator(), m_data, et m_variable.
|
overridevirtual |
Applique la méthode de comparaison spécifiée par compare_args.
Implémente Arcane::IVariableInternal.
Définition à la ligne 1472 du fichier Variable.cc.
Références m_variable.
|
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 1416 du fichier Variable.cc.
Références Arcane::IData::_commonInternal(), ARCANE_CHECK_POINTER, Arcane::asBytes(), Arccore::asSpan(), Arcane::IParallelMng::commRank(), Arcane::IHashAlgorithm::computeHash(), Arcane::IParallelMng::gatherVariable(), m_item_family, Arcane::IParallelMng::masterIORank(), Arcane::INumericDataInternal::memoryView(), Arcane::IDataInternal::numericData(), et Arcane::Convert::toHexaString().
|
virtual |
Retourne le IParallelMng du replica du maillage associé à la variable.
Retourne nullptr s'y a pas de réplication.
Implémente Arcane::IVariableInternal.
Définition à la ligne 1481 du fichier Variable.cc.
Références Arcane::IParallelReplication::hasReplication(), m_variable, Arcane::IParallelReplication::replicaParallelMng(), et Arcane::IParallelMng::replication().
|
overridevirtual |
Redimensionne la variable en ajoutant une capacité additionnelle.
Implémente Arcane::IVariableInternal.
Définition à la ligne 1463 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 125 du fichier Variable.cc.
Références ARCANE_FATAL, Arcane::Byte, Arcane::ISerializer::getSpan(), m_hash_id, m_infos, Arcane::ISerializer::mode(), Arcane::ISerializer::ModeGet, Arcane::ISerializer::ModePut, Arcane::ISerializer::putSpan(), et Arcane::ISerializer::reserveSpan().
|
staticprivate |
Définition à la ligne 162 du fichier Variable.cc.
ScopedPtrT<IVariableComputeFunction> Arcane::VariablePrivate::m_compute_function |
Fonction de calcul.
Définition à la ligne 108 du fichier Variable.cc.
Données de la variable.
Définition à la ligne 94 du fichier Variable.cc.
Référencé par changeAllocator().
IDataFactoryMng* Arcane::VariablePrivate::m_data_factory_mng = nullptr |
Définition à la ligne 92 du fichier Variable.cc.
UniqueArray<VariableDependInfo> Arcane::VariablePrivate::m_depends |
Liste des dépendances de cette variable.
Définition à la ligne 106 du fichier Variable.cc.
VariableRef* Arcane::VariablePrivate::m_first_reference = nullptr |
Définition à la ligne 104 du fichier Variable.cc.
bool Arcane::VariablePrivate::m_has_recursive_depend = true |
Vrai si les dépendances sont récursives.
Définition à la ligne 113 du fichier Variable.cc.
bool Arcane::VariablePrivate::m_has_valid_data = false |
Vrai si les données sont valide.
Définition à la ligne 102 du fichier Variable.cc.
|
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 170 du fichier Variable.cc.
Référencé par serializeHashId().
VariableInfo Arcane::VariablePrivate::m_infos |
Infos caractéristiques de la variable.
Définition à la ligne 97 du fichier Variable.cc.
Référencé par serializeHashId().
bool Arcane::VariablePrivate::m_is_partial = false |
Vrai si la variable est partielle.
Définition à la ligne 99 du fichier Variable.cc.
bool Arcane::VariablePrivate::m_is_used = false |
Etat d'utilisation de la variable.
Définition à la ligne 101 du fichier Variable.cc.
Référencé par Arcane::Variable::_checkSwapIsValid().
IItemFamily* Arcane::VariablePrivate::m_item_family = nullptr |
Familly d'entité (peut être nul)
Définition à la ligne 96 du fichier Variable.cc.
Référencé par computeComparisonHashCollective().
ItemGroup Arcane::VariablePrivate::m_item_group |
Groupe d'entité sur lequel est associé la variable.
Définition à la ligne 95 du fichier Variable.cc.
Real Arcane::VariablePrivate::m_last_update_time = 0.0 |
Temps physique de la dernière mise à jour.
Définition à la ligne 103 du fichier Variable.cc.
MeshHandle Arcane::VariablePrivate::m_mesh_handle |
Maillage (peut être nul)
Définition à la ligne 93 du fichier Variable.cc.
Int64 Arcane::VariablePrivate::m_modified_time = 0 |
Tag de la dernière modification.
Définition à la ligne 107 du fichier Variable.cc.
Integer Arcane::VariablePrivate::m_nb_reference = 0 |
Première référence sur la variable.
Définition à la ligne 105 du fichier Variable.cc.
bool Arcane::VariablePrivate::m_need_property_update = false |
Définition à la ligne 100 du fichier Variable.cc.
AutoDetachObservable Arcane::VariablePrivate::m_on_size_changed_observable |
Observable en redimensionnement.
Définition à la ligne 111 du fichier Variable.cc.
int Arcane::VariablePrivate::m_property = 0 |
Propriétés de la variable.
Définition à la ligne 98 du fichier Variable.cc.
AutoDetachObservable Arcane::VariablePrivate::m_read_observable |
Observable en lecture.
Définition à la ligne 110 du fichier Variable.cc.
ISubDomain* Arcane::VariablePrivate::m_sub_domain = nullptr |
Définition à la ligne 91 du fichier Variable.cc.
Liste des tags.
Définition à la ligne 112 du fichier Variable.cc.
Variable* Arcane::VariablePrivate::m_variable = nullptr |
Variable associée.
Définition à la ligne 115 du fichier Variable.cc.
Référencé par changeAllocator(), compareVariable(), replicaParallelMng(), et resize().
bool Arcane::VariablePrivate::m_want_shrink = false |
Définition à la ligne 114 du fichier Variable.cc.
AutoDetachObservable Arcane::VariablePrivate::m_write_observable |
Observable en écriture.
Définition à la ligne 109 du fichier Variable.cc.
|
static |
Définition à la ligne 87 du fichier Variable.cc.