#include <core/alien/index_manager/functional/BasicIndexManager.h>
Classes | |
| struct | InternalEntryIndex |
| struct | EntryIndexComparator |
| class | MyEntryImpl |
| Squelette de l'implementation locale de Entry La vraie implémentation est MyAbstractEntryImpl. Cette classe permet de la factorisation de code. More... | |
| struct | EntrySendRequest |
| struct | EntryRecvRequest |
| class | MyEntryEnumeratorImpl |
Public Member Functions | |
| BasicIndexManager (Alien::IMessagePassingMng *parallelMng) | |
| Constructeur de la classe. | |
| ~BasicIndexManager () override | |
| Destructeur de la classe. | |
| void | init () override |
| Initialisation. | |
| bool | isPrepared () const override |
| Indique si la phase de préparation est achevée. | |
| void | setTraceMng (Alien::ITraceMng *traceMng) override |
| Définit le gestionnaire de trace. | |
| void | prepare () override |
| Préparation : fixe l'indexation (fin des définitions). | |
| void | stats (Arccore::Integer &globalSize, Arccore::Integer &minLocalIndex, Arccore::Integer &localSize) const override |
| Statistiques d'indexation. | |
| Arccore::Integer | globalSize () const override |
| Retourne la taille globale. | |
| Arccore::Integer | minLocalIndex () const override |
| Retourne l'indice minimum local. | |
| Arccore::Integer | localSize () const override |
| Retourne l'indice minimum local. | |
| EntryEnumerator | enumerateEntry () const override |
| Construction d'un enumerateur sur les Entry. | |
| ScalarIndexSet | buildScalarIndexSet (const Arccore::String &name, Arccore::IntegerConstArrayView localIds, const IIndexManager::IAbstractFamily &family) override |
| Construit une nouvelle entrée scalaire sur un ensemble d'entités abstraites. | |
| ScalarIndexSet | buildScalarIndexSet (const Arccore::String &name, const IIndexManager::IAbstractFamily &family) override |
| VectorIndexSet | buildVectorIndexSet (const Arccore::String &name, Arccore::IntegerConstArrayView localIds, const IIndexManager::IAbstractFamily &family, Arccore::Integer n) override |
| Construit une nouvelle entrée vectoriellesur un ensemble d'entités abstraites. | |
| VectorIndexSet | buildVectorIndexSet (const Arccore::String &name, const IIndexManager::IAbstractFamily &family, Arccore::Integer n) override |
| Arccore::UniqueArray< Arccore::Integer > | getIndexes (const ScalarIndexSet &entry) const override |
| Fournit une table de translation indexé par les items. | |
| Arccore::UniqueArray2< Arccore::Integer > | getIndexes (const VectorIndexSet &entries) const override |
| Arccore::MessagePassing::IMessagePassingMng * | parallelMng () const override |
| Donne le gestionnaire parallèle ayant servi à l'indexation. | |
| void | setMaxNullIndexOpt (bool flag) override |
| define null index : default = -1, if true null_index = max_index+1 | |
| Arccore::Integer | nullIndex () const override |
| return value of null index | |
| void | keepAlive (const IAbstractFamily *family) override |
| Permet de gérer la mort d'une famille associée à l'index-manager. | |
| Public Member Functions inherited from Alien::IIndexManager | |
| IIndexManager ()=default | |
| Constructeur par défaut. | |
| virtual | ~IIndexManager ()=default |
| Destructeur. | |
| virtual void | setTraceMng (Arccore::ITraceMng *traceMng)=0 |
| Définit le gestionnaire de trace. | |
| virtual ScalarIndexSet | buildScalarIndexSet (const Arccore::String &name, Arccore::ConstArrayView< Arccore::Integer > localIds, const IAbstractFamily &family)=0 |
| Construit une nouvelle entrée scalaire sur des items du maillage. | |
| virtual VectorIndexSet | buildVectorIndexSet (const Arccore::String &name, Arccore::ConstArrayView< Arccore::Integer > localIds, const IAbstractFamily &family, Arccore::Integer n)=0 |
| Construit une nouvelle entrée vectorielle sur des items du maillage. | |
Private Types | |
| enum | State { Undef , Initialized , Prepared } |
| typedef std::vector< InternalEntryIndex > | EntryIndexMap |
| typedef std::map< Arccore::String, MyEntryImpl * > | EntrySet |
| Table des Entry connues localement. | |
Private Member Functions | |
| Entry | getEntry (const Arccore::String &name) const override |
| Retourne l'entrée associée à un nom. | |
| Entry | buildEntry (const Arccore::String &name, const IAbstractFamily *itemFamily, Arccore::Integer kind) |
| void | defineIndex (const Entry &entry, Arccore::IntegerConstArrayView localIds) |
| void | parallel_prepare (EntryIndexMap &entry_index) |
| void | sequential_prepare (EntryIndexMap &entry_index) |
| bool | isOwn (const IAbstractFamily::Item &item) const |
| bool | isOwn (const InternalEntryIndex &i) const |
| void | reserveEntries (const EntryIndexMap &entry_index) |
| Arccore::Integer | addNewAbstractFamily (const IAbstractFamily *family) |
| void | init_mine () |
| Init datastructure with a non virtual function. | |
Private Attributes | |
| Arccore::MessagePassing::IMessagePassingMng * | m_parallel_mng = nullptr |
| Arccore::Integer | m_local_owner = 0 |
| Identifiant du 'propriétaire' courant. | |
| enum Alien::BasicIndexManager::State | m_state |
| Arccore::ITraceMng * | m_trace = nullptr |
| Arccore::Integer | m_local_entry_count = 0 |
| Arccore::Integer | m_global_entry_count = 0 |
| Arccore::Integer | m_global_entry_offset = 0 |
| Arccore::Integer | m_local_removed_entry_count = 0 |
| Arccore::Integer | m_global_removed_entry_count = 0 |
| bool | m_max_null_index_opt = false |
| EntrySet | m_entry_set |
| Arccore::Integer | m_creation_index = 0 |
| Index de creation des entrées. | |
| Arccore::Integer | m_abstract_family_base_kind = 0 |
| Famille des familles abstraites associées aux familles du maillage. | |
| std::map< Arccore::Integer, std::shared_ptr< IAbstractFamily > > | m_abstract_families |
| Table des IAbstractFamily ici gérées. | |
| std::map< const IAbstractFamily *, Arccore::Integer > | m_abstract_family_to_kind_map |
| IAbstractFamily extérieures. | |
Additional Inherited Members | |
| Public Types inherited from Alien::IIndexManager | |
| typedef Entry | ScalarIndexSet |
| typedef Arccore::UniqueArray< ScalarIndexSet > | VectorIndexSet |
Definition at line 26 of file BasicIndexManager.h.
|
private |
Definition at line 169 of file BasicIndexManager.h.
|
private |
Table des Entry connues localement.
Definition at line 178 of file BasicIndexManager.h.
|
private |
Definition at line 125 of file BasicIndexManager.h.
|
explicit |
Constructeur de la classe.
Definition at line 328 of file BasicIndexManager.cc.
References init_mine(), and parallelMng().
|
override |
Destructeur de la classe.
Definition at line 338 of file BasicIndexManager.cc.
References init_mine().
|
private |
Definition at line 1111 of file BasicIndexManager.cc.
|
private |
Definition at line 383 of file BasicIndexManager.cc.
|
overridevirtual |
Construit une nouvelle entrée scalaire sur l'ensemble des entités d'une familles abstraite
Implements Alien::IIndexManager.
|
override |
Construit une nouvelle entrée vectoriellesur un ensemble d'entités abstraites.
L'implémentation actuelle considére le multi-scalaire comme du vectoriel
|
overridevirtual |
Construit une nouvelle entrée scalaire sur l'ensemble des entités d'une familles abstraite
L'implémentation actuelle considére le multi-scalaire comme du vectoriel
Implements Alien::IIndexManager.
References getIndexes().
|
private |
Definition at line 420 of file BasicIndexManager.cc.
|
nodiscardoverridevirtual |
Construction d'un enumerateur sur les Entry.
Implements Alien::IIndexManager.
Definition at line 1011 of file BasicIndexManager.cc.
|
nodiscardoverrideprivatevirtual |
Retourne l'entrée associée à un nom.
Implements Alien::IIndexManager.
Definition at line 406 of file BasicIndexManager.cc.
|
nodiscardoverridevirtual |
Fournit une table de translation indexé par les items.
Implements Alien::IIndexManager.
Definition at line 911 of file BasicIndexManager.cc.
References Alien::IIndexManager::Entry::internal(), Alien::IIndexManager::Entry::manager(), Alien::IIndexManager::IAbstractFamily::maxLocalId(), and nullIndex().
Referenced by buildVectorIndexSet().
|
nodiscardoverridevirtual |
Fournit une table de translation vectorielle indexé par les items puis par les entrées
Implements Alien::IIndexManager.
Definition at line 932 of file BasicIndexManager.cc.
References Alien::BasicIndexManager::MyEntryImpl::getAllIndexes(), Alien::IIndexManager::IAbstractFamily::maxLocalId(), and nullIndex().
|
nodiscardoverridevirtual |
Retourne la taille globale.
Uniquement valide après prepare
Implements Alien::IIndexManager.
Definition at line 978 of file BasicIndexManager.cc.
Referenced by stats().
|
overridevirtual |
Initialisation.
Implements Alien::IIndexManager.
Definition at line 346 of file BasicIndexManager.cc.
References init_mine().
|
private |
Init datastructure with a non virtual function.
Definition at line 351 of file BasicIndexManager.cc.
References m_abstract_families, m_abstract_family_base_kind, m_abstract_family_to_kind_map, and m_local_owner.
Referenced by BasicIndexManager(), init(), and ~BasicIndexManager().
|
inlinenodiscardprivate |
Definition at line 211 of file BasicIndexManager.h.
|
inlinenodiscardprivate |
Definition at line 215 of file BasicIndexManager.h.
|
inlinenodiscardoverridevirtual |
Indique si la phase de préparation est achevée.
Implements Alien::IIndexManager.
Definition at line 39 of file BasicIndexManager.h.
|
overridevirtual |
Permet de gérer la mort d'une famille associée à l'index-manager.
Méthode de bas niveau pour les implémentationsde IAbstractFamily, usuellement dans le desctructeur des implémentations extérieures de IAbstractFamily
Implements Alien::IIndexManager.
Definition at line 1091 of file BasicIndexManager.cc.
References Alien::IIndexManager::IAbstractFamily::clone(), Alien::BasicIndexManager::MyEntryImpl::getFamily(), m_abstract_families, and m_abstract_family_to_kind_map.
|
nodiscardoverridevirtual |
Retourne l'indice minimum local.
Uniquement valide après prepare
Implements Alien::IIndexManager.
Definition at line 1000 of file BasicIndexManager.cc.
Referenced by stats().
|
nodiscardoverridevirtual |
Retourne l'indice minimum local.
Uniquement valide après prepare
Implements Alien::IIndexManager.
Definition at line 989 of file BasicIndexManager.cc.
Referenced by stats().
|
inlinenodiscardoverridevirtual |
return value of null index
Implements Alien::IIndexManager.
Definition at line 109 of file BasicIndexManager.h.
Referenced by getIndexes(), and getIndexes().
|
private |
Definition at line 533 of file BasicIndexManager.cc.
|
inlinenodiscardoverridevirtual |
Donne le gestionnaire parallèle ayant servi à l'indexation.
Implements Alien::IIndexManager.
Definition at line 101 of file BasicIndexManager.h.
Referenced by BasicIndexManager().
|
overridevirtual |
Préparation : fixe l'indexation (fin des définitions).
< Table des index d'entrées (>=0:local, <0:global) en phase1
Implements Alien::IIndexManager.
Definition at line 453 of file BasicIndexManager.cc.
References Alien::BasicIndexManager::MyEntryImpl::getFamily(), Alien::BasicIndexManager::MyEntryImpl::getKind(), Alien::IIndexManager::IAbstractFamily::item(), Alien::IIndexManager::IAbstractFamily::owners(), and Alien::IIndexManager::IAbstractFamily::uids().
|
private |
Definition at line 886 of file BasicIndexManager.cc.
|
private |
Definition at line 846 of file BasicIndexManager.cc.
|
inlineoverridevirtual |
define null index : default = -1, if true null_index = max_index+1
Implements Alien::IIndexManager.
Definition at line 107 of file BasicIndexManager.h.
|
override |
Définit le gestionnaire de trace.
Definition at line 375 of file BasicIndexManager.cc.
|
overridevirtual |
Statistiques d'indexation.
Uniquement valide après prepare
Implements Alien::IIndexManager.
Definition at line 964 of file BasicIndexManager.cc.
References globalSize(), localSize(), and minLocalIndex().
|
private |
Table des IAbstractFamily ici gérées.
Definition at line 190 of file BasicIndexManager.h.
Referenced by init_mine(), and keepAlive().
|
private |
Famille des familles abstraites associées aux familles du maillage.
Definition at line 186 of file BasicIndexManager.h.
Referenced by init_mine().
|
private |
IAbstractFamily extérieures.
Permet la gestion de la survie des
Definition at line 192 of file BasicIndexManager.h.
Referenced by init_mine(), and keepAlive().
|
private |
Index de creation des entrées.
Definition at line 182 of file BasicIndexManager.h.
|
private |
Definition at line 179 of file BasicIndexManager.h.
|
private |
Definition at line 135 of file BasicIndexManager.h.
|
private |
Definition at line 136 of file BasicIndexManager.h.
|
private |
Definition at line 138 of file BasicIndexManager.h.
|
private |
Definition at line 134 of file BasicIndexManager.h.
|
private |
Identifiant du 'propriétaire' courant.
Definition at line 123 of file BasicIndexManager.h.
Referenced by init_mine().
|
private |
Definition at line 137 of file BasicIndexManager.h.
|
private |
Definition at line 140 of file BasicIndexManager.h.
|
private |
Definition at line 122 of file BasicIndexManager.h.
|
private |
Definition at line 132 of file BasicIndexManager.h.