Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
Référence du modèle de la classe Arcane::MultiBufferT< T >

Tampon pour allocation multiple. Plus de détails...

#include <arcane/utils/MultiBuffer.h>

+ Graphe de collaboration de Arcane::MultiBufferT< T >:

Types publics

typedef UniqueArray< T > BufferType
 

Fonctions membres publiques

 MultiBufferT (Integer buf_size)
 
 MultiBufferT (const MultiBufferT< T > &ref)
 Constructeur de recopie.
 
void operator= (const MultiBufferT< T > &ref)
 Opérateur de recopie (interdit)
 
T * allocOne ()
 Alloue un nouvel élément.
 
ArrayView< T > allocMany (Integer n)
 Alloue n éléments.
 
void clear ()
 
Integer nbAllocatedBuffer ()
 
Integer bufferSize () const
 

Fonctions membres protégées

void _freeAllocatedBuffers ()
 

Fonctions membres privées

void _allocateCurrentBuffer ()
 

Attributs privés

Integer m_buffer_size
 Nombre d'élément d'un tampon.
 
Integer m_current_buffer_size
 Nombre d'éléments max du tampon courant.
 
Integer m_nb_in_buffer
 Nombre d'éléments dans le tampon actuel.
 
BufferTypem_current_buffer
 Tampon actuel.
 
UniqueArray< BufferType * > m_allocated_buffers
 Liste de tous les tampons.
 

Description détaillée

template<class T>
class Arcane::MultiBufferT< T >

Tampon pour allocation multiple.

Cette classe gère une liste pré-alloué d'élément afin de limiter les appels multiples à des allocations (new() ou malloc()).

Les pré-allocation se font par bloc de m_buffer_size éléments

Pour être utilisé par cette classe, un type doit posséder un constructeur par défaut et un opérateur de recopie. Cette classe garantit que les pointeurs retournés restent valides tant que cette instance existe.

Les constructeurs et opérateurs de recopie ne dupliquent pas la mémoire mais se contentent juste de conserver la taille du tampon.

Définition à la ligne 43 du fichier MultiBuffer.h.

Documentation des définitions de type membres

◆ BufferType

template<class T >
typedef UniqueArray<T> Arcane::MultiBufferT< T >::BufferType

Définition à la ligne 47 du fichier MultiBuffer.h.

Documentation des constructeurs et destructeur

◆ MultiBufferT() [1/3]

template<class T >
Arcane::MultiBufferT< T >::MultiBufferT ( )
inline

Définition à la ligne 51 du fichier MultiBuffer.h.

◆ MultiBufferT() [2/3]

template<class T >
Arcane::MultiBufferT< T >::MultiBufferT ( Integer  buf_size)
inline

Définition à la ligne 55 du fichier MultiBuffer.h.

◆ MultiBufferT() [3/3]

template<class T >
Arcane::MultiBufferT< T >::MultiBufferT ( const MultiBufferT< T > &  ref)
inline

Constructeur de recopie.

Définition à la ligne 60 du fichier MultiBuffer.h.

◆ ~MultiBufferT()

template<class T >
Arcane::MultiBufferT< T >::~MultiBufferT ( )
inline

Définition à la ligne 64 du fichier MultiBuffer.h.

Documentation des fonctions membres

◆ _allocateCurrentBuffer()

template<class T >
void Arcane::MultiBufferT< T >::_allocateCurrentBuffer ( )
inlineprivate

Définition à la ligne 136 du fichier MultiBuffer.h.

◆ _freeAllocatedBuffers()

template<class T >
void Arcane::MultiBufferT< T >::_freeAllocatedBuffers ( )
inlineprotected

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

◆ allocMany()

template<class T >
ArrayView< T > Arcane::MultiBufferT< T >::allocMany ( Integer  n)
inline

Alloue n éléments.

Définition à la ligne 90 du fichier MultiBuffer.h.

◆ allocOne()

template<class T >
T * Arcane::MultiBufferT< T >::allocOne ( )
inline

Alloue un nouvel élément.

Définition à la ligne 79 du fichier MultiBuffer.h.

◆ bufferSize()

template<class T >
Integer Arcane::MultiBufferT< T >::bufferSize ( ) const
inline

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

◆ clear()

template<class T >
void Arcane::MultiBufferT< T >::clear ( )
inline

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

◆ nbAllocatedBuffer()

template<class T >
Integer Arcane::MultiBufferT< T >::nbAllocatedBuffer ( )
inline

Définition à la ligne 119 du fichier MultiBuffer.h.

◆ operator=()

template<class T >
void Arcane::MultiBufferT< T >::operator= ( const MultiBufferT< T > &  ref)
inline

Opérateur de recopie (interdit)

Définition à la ligne 70 du fichier MultiBuffer.h.

Documentation des données membres

◆ m_allocated_buffers

template<class T >
UniqueArray< BufferType* > Arcane::MultiBufferT< T >::m_allocated_buffers
private

Liste de tous les tampons.

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

◆ m_buffer_size

template<class T >
Integer Arcane::MultiBufferT< T >::m_buffer_size
private

Nombre d'élément d'un tampon.

Définition à la ligne 130 du fichier MultiBuffer.h.

◆ m_current_buffer

template<class T >
BufferType* Arcane::MultiBufferT< T >::m_current_buffer
private

Tampon actuel.

Définition à la ligne 133 du fichier MultiBuffer.h.

◆ m_current_buffer_size

template<class T >
Integer Arcane::MultiBufferT< T >::m_current_buffer_size
private

Nombre d'éléments max du tampon courant.

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

◆ m_nb_in_buffer

template<class T >
Integer Arcane::MultiBufferT< T >::m_nb_in_buffer
private

Nombre d'éléments dans le tampon actuel.

Définition à la ligne 132 du fichier MultiBuffer.h.


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