Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
Référence de la classe Arcane::ItemVector

Vecteur d'entités. Plus de détails...

#include <arcane/core/ItemVector.h>

+ Graphe d'héritage de Arcane::ItemVector:
+ Graphe de collaboration de Arcane::ItemVector:

Types publics

using ItemType = Item
 

Fonctions membres publiques

 ItemVector (IItemFamily *afamily)
 Créé un vecteur vide associé à la famille family.
 
 ItemVector (IItemFamily *afamily, Int32ConstArrayView local_ids)
 Créé un vecteur associé à la famille family et contenant les entités local_ids.
 
 ItemVector (IItemFamily *afamily, Integer asize)
 Créé un vecteur pour size éléments associé à la famille family.
 
 ItemVector ()
 Créé un vecteur nul. Il faudra ensuite appeler setFamily() pour l'utiliser.
 
 operator ItemVectorView () const
 Operateur de cast vers ItemVectorView.
 
void setFamily (IItemFamily *afamily)
 Positionne la famille associée.
 
void add (Int32 local_id)
 Ajoute une entité de numéro local local_id à la fin du vecteur.
 
void add (ConstArrayView< Int32 > local_ids)
 Ajoute une liste d'entité de numéros locaux local_ids à la fin du vecteur.
 
void addItem (ItemLocalId local_id)
 Ajoute une entité de numéro local local_id à la fin du vecteur.
 
void addItem (Item item)
 Ajoute une entité à la fin du vecteur.
 
Int32 size () const
 Nombre d'éléments du vecteur.
 
void reserve (Integer capacity)
 Réserve la mémoire pour capacity entités.
 
void clear ()
 Supprime toutes les entités du vecteur.
 
ItemVectorView view () const
 Vue sur le vecteur.
 
ArrayView< Int32 > viewAsArray ()
 Vue sur les numéros locaux.
 
ConstArrayView< Int32 > viewAsArray () const
 Vue constante sur les numéros locaux.
 
void removeAt (Int32 index)
 Supprime l'entité à l'index index.
 
void resize (Integer new_size)
 Positionne le nombre d'éléments du tableau.
 
ItemVector clone ()
 Clone ce vecteur.
 
Item operator[] (Int32 index) const
 Entité à la position index du vecteur.
 
IItemFamilyfamily () const
 Famille associée au vecteur.
 
ItemEnumerator enumerator () const
 Enumérateur.
 

Attributs protégés

SharedArray< Int32 > m_local_ids
 
IItemFamilym_family = nullptr
 
ItemSharedInfom_shared_info = ItemSharedInfo::nullInstance()
 

Fonctions membres privées

void _init ()
 

Description détaillée

Vecteur d'entités.

La classe ItemVector utilise une sémantique par référence.

Note
Cette classe n'est pas thread-safe et ne doit pas être utilisée par différents threads en même temps.
Avertissement
Un vecteur doit nécessairement être associée à une famille d'entité (ItemFamily*) avant d'être utilisé. Il est possible de le faire soit via l'appel à setFamily(), soit via un constructeur qui prend une famille en argument.

ItemVector est la classe générique. Il est possible d'avoir une version spécialisée par genre d'entité via ItemVectorT.

Le fonctionnement du vecteur d'entité est similaire à celui du groupe d'entité ItemGroup à la différence suivante:

  • le vecteur est local au sous-domaine
  • le vecteur est invalidé si la famille (IItemFamily) associée évolue (après appel à IItemFamily::endUpdate() si le compactage ou le tri est actif)
  • le vecteur peut contenir plusieurs fois la même entité.

Un vecteur est intéressant pour construire une liste temporaire d'entités. Il reprend les fonctionnalités similaires à la classe Array et il est donc possible par exemple d'ajouter des éléments un par un, soit via un localId(), soit via une entité.

Définition à la ligne 58 du fichier ItemVector.h.

Documentation des définitions de type membres

◆ ItemType

Définition à la ligne 62 du fichier ItemVector.h.

Documentation des constructeurs et destructeur

◆ ItemVector() [1/4]

Arcane::ItemVector::ItemVector ( IItemFamily afamily)
explicit

Créé un vecteur vide associé à la famille family.

Définition à la ligne 37 du fichier ItemVector.cc.

◆ ItemVector() [2/4]

Arcane::ItemVector::ItemVector ( IItemFamily afamily,
Int32ConstArrayView  local_ids 
)

Créé un vecteur associé à la famille family et contenant les entités local_ids.

Définition à la ligne 48 du fichier ItemVector.cc.

Références Arccore::Array< T >::resize(), et Arccore::Array< T >::span().

◆ ItemVector() [3/4]

Arcane::ItemVector::ItemVector ( IItemFamily afamily,
Integer  asize 
)

Créé un vecteur pour size éléments associé à la famille family.

Définition à la ligne 61 du fichier ItemVector.cc.

Références Arccore::Array< T >::resize().

◆ ItemVector() [4/4]

Arcane::ItemVector::ItemVector ( )

Créé un vecteur nul. Il faudra ensuite appeler setFamily() pour l'utiliser.

Définition à la ligne 73 du fichier ItemVector.cc.

Documentation des fonctions membres

◆ _init()

void Arcane::ItemVector::_init ( )
private

Définition à la ligne 82 du fichier ItemVector.cc.

◆ add() [1/2]

void Arcane::ItemVector::add ( ConstArrayView< Int32 >  local_ids)
inline

Ajoute une liste d'entité de numéros locaux local_ids à la fin du vecteur.

Définition à la ligne 96 du fichier ItemVector.h.

◆ add() [2/2]

void Arcane::ItemVector::add ( Int32  local_id)
inline

Ajoute une entité de numéro local local_id à la fin du vecteur.

Définition à la ligne 93 du fichier ItemVector.h.

◆ addItem() [1/2]

void Arcane::ItemVector::addItem ( Item  item)
inline

Ajoute une entité à la fin du vecteur.

Définition à la ligne 102 du fichier ItemVector.h.

Références Arcane::Item::localId().

◆ addItem() [2/2]

void Arcane::ItemVector::addItem ( ItemLocalId  local_id)
inline

Ajoute une entité de numéro local local_id à la fin du vecteur.

Définition à la ligne 99 du fichier ItemVector.h.

◆ clear()

void Arcane::ItemVector::clear ( )
inline

Supprime toutes les entités du vecteur.

Définition à la ligne 111 du fichier ItemVector.h.

◆ clone()

ItemVector Arcane::ItemVector::clone ( )
inline

Clone ce vecteur.

Définition à la ligne 134 du fichier ItemVector.h.

◆ enumerator()

ItemEnumerator Arcane::ItemVector::enumerator ( ) const
inline

Enumérateur.

Définition à la ligne 143 du fichier ItemVector.h.

◆ family()

IItemFamily * Arcane::ItemVector::family ( ) const
inline

Famille associée au vecteur.

Définition à la ligne 140 du fichier ItemVector.h.

◆ operator ItemVectorView()

Arcane::ItemVector::operator ItemVectorView ( ) const
inline

Operateur de cast vers ItemVectorView.

Définition à la ligne 81 du fichier ItemVector.h.

◆ operator[]()

Item Arcane::ItemVector::operator[] ( Int32  index) const
inline

Entité à la position index du vecteur.

Définition à la ligne 137 du fichier ItemVector.h.

◆ removeAt()

void Arcane::ItemVector::removeAt ( Int32  index)
inline

Supprime l'entité à l'index index.

Définition à la ligne 123 du fichier ItemVector.h.

◆ reserve()

void Arcane::ItemVector::reserve ( Integer  capacity)
inline

Réserve la mémoire pour capacity entités.

Définition à la ligne 108 du fichier ItemVector.h.

◆ resize()

void Arcane::ItemVector::resize ( Integer  new_size)
inline

Positionne le nombre d'éléments du tableau.

Si la nouvelle taille est supérieure à l'ancienne, les éléments ajoutés sont indéfinis.

Définition à la ligne 131 du fichier ItemVector.h.

Référencé par Arcane::ConnectivityItemVector::resizeAndCopy(), et Arcane::ConnectivityItemVector::setItem().

◆ setFamily()

void Arcane::ItemVector::setFamily ( IItemFamily afamily)

Positionne la famille associée.

Le vecteur est vidé de ses éléments

Définition à la ligne 96 du fichier ItemVector.cc.

Références Arccore::Array< T >::clear().

◆ size()

Int32 Arcane::ItemVector::size ( ) const
inline

Nombre d'éléments du vecteur.

Définition à la ligne 105 du fichier ItemVector.h.

◆ view()

ItemVectorView Arcane::ItemVector::view ( ) const
inline

Vue sur le vecteur.

Définition à la ligne 114 du fichier ItemVector.h.

◆ viewAsArray() [1/2]

ArrayView< Int32 > Arcane::ItemVector::viewAsArray ( )
inline

Vue sur les numéros locaux.

Définition à la ligne 117 du fichier ItemVector.h.

Référencé par Arcane::ConnectivityItemVector::resizeAndCopy(), et Arcane::ConnectivityItemVector::setItem().

◆ viewAsArray() [2/2]

ConstArrayView< Int32 > Arcane::ItemVector::viewAsArray ( ) const
inline

Vue constante sur les numéros locaux.

Définition à la ligne 120 du fichier ItemVector.h.

Documentation des données membres

◆ m_family

IItemFamily* Arcane::ItemVector::m_family = nullptr
protected

Définition à la ligne 148 du fichier ItemVector.h.

◆ m_local_ids

SharedArray<Int32> Arcane::ItemVector::m_local_ids
protected

Définition à la ligne 147 du fichier ItemVector.h.

◆ m_shared_info

ItemSharedInfo* Arcane::ItemVector::m_shared_info = ItemSharedInfo::nullInstance()
protected

Définition à la ligne 149 du fichier ItemVector.h.


La documentation de cette classe a été générée à partir des fichiers suivants :