6#include <alien/utils/Precomp.h>
38 Item(Arccore::Int64 uniqueId, Arccore::Integer owner)
39 : m_unique_id(uniqueId)
44 Arccore::Int64 uniqueId()
const {
return m_unique_id; }
45 Arccore::Integer owner()
const {
return m_owner; }
48 Arccore::Int64 m_unique_id;
49 Arccore::Integer m_owner;
64 Arccore::ConstArrayView<Arccore::Int64> uniqueIds)
const = 0;
66 virtual Item item(Arccore::Int32 localId)
const = 0;
69 virtual Arccore::SharedArray<Arccore::Integer>
owners(
70 Arccore::ConstArrayView<Arccore::Int32> localIds)
const = 0;
72 virtual Arccore::SharedArray<Arccore::Int64>
uids(
73 Arccore::ConstArrayView<Arccore::Int32> localIds)
const = 0;
75 virtual Arccore::SharedArray<Arccore::Int32>
allLocalIds()
const = 0;
86 virtual Arccore::ConstArrayView<Arccore::Integer>
getOwnIndexes()
const = 0;
88 virtual Arccore::ConstArrayView<Arccore::Integer>
getAllIndexes()
const = 0;
90 virtual Arccore::ConstArrayView<Arccore::Integer>
getOwnLocalIds()
const = 0;
92 virtual Arccore::ConstArrayView<Arccore::Integer>
getAllLocalIds()
const = 0;
94 virtual Arccore::String
getName()
const = 0;
96 virtual Arccore::Integer
getKind()
const = 0;
101 const Arccore::String& tagname,
const Arccore::String& tagvalue) = 0;
103 virtual void removeTag(
const Arccore::String& tagname) = 0;
105 virtual bool hasTag(
const Arccore::String& tagname) = 0;
107 virtual Arccore::String
tagValue(
const Arccore::String& tagname) = 0;
151 void nullify() {
m_impl =
nullptr; }
156 return m_impl->getOwnIndexes();
162 return m_impl->getAllIndexes();
168 return m_impl->getOwnLocalIds();
174 return m_impl->getAllLocalIds();
188 void addTag(
const Arccore::String& tagname,
const Arccore::String& tagvalue)
190 return m_impl->addTag(tagname, tagvalue);
197 bool hasTag(
const Arccore::String& tagname) {
return m_impl->hasTag(tagname); }
200 Arccore::String
tagValue(
const Arccore::String& tagname)
202 return m_impl->tagValue(tagname);
211 class EntryEnumeratorImpl
214 EntryEnumeratorImpl() =
default;
215 virtual ~EntryEnumeratorImpl() =
default;
216 virtual void moveNext() = 0;
217 virtual bool hasNext()
const = 0;
226 std::shared_ptr<EntryEnumeratorImpl> m_impl;
243 bool hasNext()
const {
return m_impl->hasNext(); }
251 Arccore::Integer my_size = 0;
256 bool null() {
return m_impl ==
nullptr; }
302 typedef Entry ScalarIndexSet;
303 typedef Arccore::UniqueArray<ScalarIndexSet> VectorIndexSet;
317 Arccore::ConstArrayView<Arccore::Integer> localIds,
333 Arccore::ConstArrayView<Arccore::Integer> localIds,
335 Arccore::Integer n) = 0;
341 const Arccore::String& name,
const IAbstractFamily& family, Arccore::Integer n) = 0;
356 const ScalarIndexSet& entry)
const = 0;
360 const VectorIndexSet& entry)
const = 0;
Interface d'implementation de EntryEnumerator.
Classe d'énumération des Entry connues.
Arccore::Integer count() const
Nombre d'élément dans l'énumérateur.
EntryEnumerator(EntryEnumeratorImpl *impl)
Constructeur par implémentation.
void operator++()
Avance l'énumérateur.
EntryEnumerator(const EntryEnumerator &e)=default
Constructeur par copie.
Entry operator*() const
Déréférencement.
EntryEnumerator(IIndexManager const *manager)
Constructeur par consultation de l'IndexManager.
bool hasNext() const
Teste l'existence d'un élément suivant.
EntryImpl * operator->() const
Déréférencement indirect.
Interface d'implémentation de Entry.
virtual IIndexManager * manager() const =0
Référentiel du manager associé
virtual ~EntryImpl()=default
Destructeur.
virtual Arccore::ConstArrayView< Arccore::Integer > getAllIndexes() const =0
Retourne la liste des Index de l'Entry (own + ghost).
virtual Arccore::String tagValue(const Arccore::String &tagname)=0
Lecture d'un tag.
virtual void removeTag(const Arccore::String &tagname)=0
Suppression d'un tag.
virtual Arccore::ConstArrayView< Arccore::Integer > getOwnLocalIds() const =0
Retourne la liste des Items de l'Entry.
virtual void addTag(const Arccore::String &tagname, const Arccore::String &tagvalue)=0
Ajout d'un tag.
virtual Arccore::ConstArrayView< Arccore::Integer > getAllLocalIds() const =0
Retourne la liste des Items de l'Entry (own + ghost).
virtual bool hasTag(const Arccore::String &tagname)=0
Test d'existance d'un tag.
virtual Arccore::String getName() const =0
Retourne le nom de l'entrée.
virtual Arccore::ConstArrayView< Arccore::Integer > getOwnIndexes() const =0
Retourne la liste des Index de l'Entry.
virtual Arccore::Integer getKind() const =0
Retourne le type de support de l'Entry.
virtual const IAbstractFamily & getFamily() const =0
Retourne la famille abstraite de l'Entry.
Classe de représentation des Entry.
bool null() const
Indique si l'entrée est définie.
EntryImpl * internal() const
Accès interne à l'implementation.
Arccore::ConstArrayView< Arccore::Integer > getOwnIndexes() const
Ensemble des indices 'own' gérés par cette entrée.
Entry()
Constructeur par défaut.
IIndexManager * manager() const
Référentiel du manager associé
Entry(const Entry &en)=default
Constructeur par copie.
const IAbstractFamily & getFamily() const
Retourne la famille abstraite de l'Entry.
Arccore::Integer getKind() const
Support de l'entrée (en terme d'item).
Arccore::ConstArrayView< Arccore::Integer > getAllLocalIds() const
Ensemble des items 'own + ghost' gérés par cette entrée.
Arccore::String tagValue(const Arccore::String &tagname)
Acces en lecture à un tag.
Entry(EntryImpl *impl)
Constructeur.
bool hasTag(const Arccore::String &tagname)
Test d'existance d'un tag.
EntryImpl * m_impl
Implémentation de ce type d'entrée.
void addTag(const Arccore::String &tagname, const Arccore::String &tagvalue)
Ajout d'un tag.
Arccore::ConstArrayView< Arccore::Integer > getOwnLocalIds() const
Ensemble des items 'own' gérés par cette entrée.
void removeTag(const Arccore::String &tagname)
Suppression d'un tag.
Arccore::String getName() const
Nom de l'entrée.
Entry & operator=(const Entry &en)
Opérateur de copie.
Arccore::ConstArrayView< Arccore::Integer > getAllIndexes() const
Ensemble des indices 'own + ghost' gérés par cette entrée (.
Interface des familles abstraites pour l'indexation de items.
virtual Arccore::SharedArray< Arccore::Int64 > uids(Arccore::ConstArrayView< Arccore::Int32 > localIds) const =0
Retourne l'ensemble des uniqueIds d'un ensemble d'item décrits par leur localIds.
virtual IAbstractFamily * clone() const =0
Construit un clone de cet objet.
virtual Arccore::Int32 maxLocalId() const =0
Identifiant maximal des localIds pour cette famille.
virtual void uniqueIdToLocalId(Arccore::ArrayView< Arccore::Int32 > localIds, Arccore::ConstArrayView< Arccore::Int64 > uniqueIds) const =0
Convertit des uniqueIds en localIds. Erreur fatale si un item n'est pas retrouvé
virtual Item item(Arccore::Int32 localId) const =0
Retourne un objet Item à partir de son localId.
virtual Arccore::SharedArray< Arccore::Integer > owners(Arccore::ConstArrayView< Arccore::Int32 > localIds) const =0
virtual Arccore::SharedArray< Arccore::Int32 > allLocalIds() const =0
Retourne l'ensemble des identifiants locaux de la famille.
virtual VectorIndexSet buildVectorIndexSet(const Arccore::String &name, const IAbstractFamily &family, Arccore::Integer n)=0
virtual void setTraceMng(Arccore::ITraceMng *traceMng)=0
Définit le gestionnaire de trace.
virtual ScalarIndexSet buildScalarIndexSet(const Arccore::String &name, const IAbstractFamily &family)=0
virtual Arccore::Integer localSize() const =0
Retourne l'indice minimum local.
virtual Arccore::Integer globalSize() const =0
Retourne la taille globale.
virtual void keepAlive(const IAbstractFamily *family)=0
Permet de gérer la mort d'une famille associée à l'index-manager.
virtual Entry getEntry(const Arccore::String &name) const =0
Retourne l'entrée associée à un nom.
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.
virtual void init()=0
Initialisation les structures.
virtual void prepare()=0
Préparation : fixe l'indexation (fin des définitions).
virtual Arccore::UniqueArray< Arccore::Integer > getIndexes(const ScalarIndexSet &entry) const =0
Demande de dé-indexation d'une partie d'une entrée.
virtual bool isPrepared() const =0
Indique si la phase de préparation est achevée.
virtual Arccore::Integer minLocalIndex() const =0
Retourne l'indice minimum local.
virtual Arccore::UniqueArray2< Arccore::Integer > getIndexes(const VectorIndexSet &entry) const =0
Fournit une table de translation indexé par les items.
virtual Alien::IMessagePassingMng * parallelMng() const =0
Donne le gestionnaire parallèle ayant servi à l'indexation.
virtual void stats(Arccore::Integer &globalSize, Arccore::Integer &minLocalIndex, Arccore::Integer &localSize) const =0
Statistiques d'indexation.
virtual void setMaxNullIndexOpt(bool flag)=0
virtual ~IIndexManager()=default
Destructeur.
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 Arccore::Integer nullIndex() const =0
return value of null index
virtual EntryEnumerator enumerateEntry() const =0
Construction d'un enumerateur sur les Entry.
IIndexManager()=default
Constructeur par défaut.
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --