Classe de base d'une table de hachage entre les items d'un groupe et leurs positions dans la table. Plus de détails...
#include <arcane/core/GroupIndexTable.h>
Types publics | |
typedef Int32 | KeyTypeValue |
typedef Int32 | ValueType |
typedef HashTraitsT< KeyTypeValue > | KeyTraitsType |
typedef KeyTraitsType::KeyTypeConstRef | KeyTypeConstRef |
Fonctions membres publiques | |
GroupIndexTable (ItemGroupImpl *group_impl) | |
void | update () |
void | clear () |
void | compact (const Int32ConstArrayView *info) |
ValueType | operator[] (Int32 i) const |
KeyTypeValue | keyLocalId (Int32 i) const |
Int32 | size () const |
GroupIndexTableView | view () const |
Fonctions membres publiques hérités de Arcane::HashTableBase | |
HashTableBase (Integer table_size, bool use_prime) | |
Crée une table de taille table_size. | |
Integer | nearestPrimeNumber (Integer n) |
Retourne le nombre premier le plus proche de n par excès. Le nombre premier le plus proche et supérieur à n est renvoyé en utilisant une table de nombre premier déterminée à l'avance. | |
Integer | count () const |
Nombre d'éléments dans la table. | |
Fonctions membres privées | |
Int32 | _hash (KeyTypeConstRef id) const |
Fonction de hachage. | |
bool | _hasKey (KeyTypeConstRef id) const |
true si une valeur avec la clé id est présente | |
Int32 | _lookupBucket (Int32 bucket, KeyTypeConstRef id) const |
Recherche d'une clef dans un bucket. | |
Int32 | _lookup (KeyTypeConstRef id) const |
Recherche d'une clef dans toute la table. | |
bool | _initialized () const |
Teste l'initialisation de l'objet. | |
bool | _checkIntegrity (bool full=true) const |
Test l'intégrité de la table relativement à son groupe. | |
void | _updateSpan () |
Attributs privés | |
ItemGroupImpl * | m_group_impl = nullptr |
UniqueArray< KeyTypeValue > | m_key_buffer |
UniqueArray< Int32 > | m_next_buffer |
Table des clés associées. | |
UniqueArray< Int32 > | m_buckets |
Table des index suivant associés. | |
bool | m_disable_check_integrity = false |
Tableau des buckets. | |
GroupIndexTableView | m_view |
Membres hérités additionnels | |
Fonctions membres protégées hérités de Arcane::HashTableBase | |
void _throwNotFound | ARCANE_NORETURN () const |
Attributs protégés hérités de Arcane::HashTableBase | |
Integer | m_count |
Nombre d'éléments. | |
Integer | m_nb_bucket |
Nombre de buckets. | |
Classe de base d'une table de hachage entre les items d'un groupe et leurs positions dans la table.
Cette table est utilisée pour les variables partielles : la position des données d'une entité n'est pas son localId() mais sa position dans l'énumerateur du groupe (i.e: dans la table).
Définition à la ligne 82 du fichier GroupIndexTable.h.
typedef HashTraitsT<KeyTypeValue> Arcane::GroupIndexTable::KeyTraitsType |
Définition à la ligne 89 du fichier GroupIndexTable.h.
Définition à la ligne 90 du fichier GroupIndexTable.h.
typedef Int32 Arcane::GroupIndexTable::KeyTypeValue |
Définition à la ligne 87 du fichier GroupIndexTable.h.
typedef Int32 Arcane::GroupIndexTable::ValueType |
Définition à la ligne 88 du fichier GroupIndexTable.h.
|
explicit |
Définition à la ligne 35 du fichier GroupIndexTable.cc.
Test l'intégrité de la table relativement à son groupe.
Définition à la ligne 152 du fichier GroupIndexTable.cc.
Références ENUMERATE_ITEM.
|
inlineprivate |
Fonction de hachage.
Utilise la fonction de hachage de Arcane même si quelques collisions sont constatées avec les petites valeurs
Définition à la ligne 125 du fichier GroupIndexTable.h.
|
private |
true si une valeur avec la clé id est présente
Définition à la ligne 129 du fichier GroupIndexTable.cc.
|
private |
Teste l'initialisation de l'objet.
Définition à la ligne 143 du fichier GroupIndexTable.cc.
|
inlineprivate |
Recherche d'une clef dans toute la table.
Définition à la ligne 141 du fichier GroupIndexTable.h.
|
inlineprivate |
Recherche d'une clef dans un bucket.
Définition à la ligne 134 du fichier GroupIndexTable.h.
|
private |
Définition à la ligne 53 du fichier GroupIndexTable.cc.
void Arcane::GroupIndexTable::compact | ( | const Int32ConstArrayView * | info | ) |
Définition à la ligne 94 du fichier GroupIndexTable.cc.
|
inline |
Définition à la ligne 106 du fichier GroupIndexTable.h.
|
inline |
Définition à la ligne 104 du fichier GroupIndexTable.h.
|
inline |
Définition à la ligne 108 du fichier GroupIndexTable.h.
void Arcane::GroupIndexTable::update | ( | ) |
Définition à la ligne 65 du fichier GroupIndexTable.cc.
|
inline |
Définition à la ligne 110 du fichier GroupIndexTable.h.
|
private |
Table des index suivant associés.
Définition à la ligne 158 du fichier GroupIndexTable.h.
Tableau des buckets.
Définition à la ligne 159 du fichier GroupIndexTable.h.
|
private |
Définition à la ligne 155 du fichier GroupIndexTable.h.
|
private |
Définition à la ligne 156 du fichier GroupIndexTable.h.
|
private |
Table des clés associées.
Définition à la ligne 157 du fichier GroupIndexTable.h.
|
private |
Définition à la ligne 160 du fichier GroupIndexTable.h.