Arcane  v3.15.0.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
Référence de la classe Arcane::impl::StackMemoryAllocatorfinal

Allocateur avec buffer pré-alloué. Plus de détails...

#include <arcane/utils/SmallArray.h>

+ Graphe d'héritage de Arcane::impl::StackMemoryAllocator:
+ Graphe de collaboration de Arcane::impl::StackMemoryAllocator:

Fonctions membres publiques

 StackMemoryAllocator (void *buf, size_t size)
 
bool hasRealloc (MemoryAllocationArgs) const final
 Indique si l'allocateur supporte la sémantique de realloc.
 
AllocatedMemoryInfo allocate (MemoryAllocationArgs args, Int64 new_size) final
 
AllocatedMemoryInfo reallocate (MemoryAllocationArgs args, AllocatedMemoryInfo current_ptr, Int64 new_size) final
 
void deallocate (MemoryAllocationArgs args, AllocatedMemoryInfo ptr) final
 Libère la mémoire dont l'adresse de base est ptr.
 
Int64 adjustedCapacity (MemoryAllocationArgs, Int64 wanted_capacity, Int64) const final
 
size_t guarantedAlignment (MemoryAllocationArgs) const final
 Valeur de l'alignement garanti par l'allocateur.
 
- Fonctions membres publiques hérités de Arccore::IMemoryAllocator3
virtual AllocatedMemoryInfo allocate (MemoryAllocationArgs args, Int64 new_size)=0
 Alloue de la mémoire pour new_size octets et retourne le pointeur.
 
virtual AllocatedMemoryInfo reallocate (MemoryAllocationArgs args, AllocatedMemoryInfo current_ptr, Int64 new_size)=0
 Réalloue de la mémoire pour new_size octets et retourne le pointeur.
 
virtual Int64 adjustedCapacity (MemoryAllocationArgs args, Int64 wanted_capacity, Int64 element_size) const =0
 Ajuste la capacité suivant la taille d'élément.
 
- Fonctions membres publiques hérités de Arccore::IMemoryAllocator
virtual ~IMemoryAllocator ()=default
 Détruit l'allocateur.
 
virtual size_t guaranteedAlignment (MemoryAllocationArgs args) const
 Valeur de l'alignement garanti par l'allocateur.
 
virtual void notifyMemoryArgsChanged (MemoryAllocationArgs old_args, MemoryAllocationArgs new_args, AllocatedMemoryInfo ptr)
 Notifie du changement des arguments spécifiques à l'instance.
 
virtual void copyMemory (MemoryAllocationArgs args, AllocatedMemoryInfo destination, AllocatedMemoryInfo source)
 Copie la mémoire entre deux zones.
 
virtual eMemoryResource memoryResource () const
 Ressource mémoire fournie par l'allocateur.
 

Attributs privés

voidm_preallocated_buffer = nullptr
 
Int64 m_preallocated_size = 0
 

Description détaillée

Allocateur avec buffer pré-alloué.

Le buffer pré-alloué m_preallocated_buffer est utilisé lorsque la taille demandée pour l'allocation est inférieure ou égale à m_preallocated_size.

Le buffer utilisé doit rester valide durant toute la durée de vie de l'allocateur.

Définition à la ligne 38 du fichier SmallArray.h.

Documentation des constructeurs et destructeur

◆ StackMemoryAllocator()

Arcane::impl::StackMemoryAllocator::StackMemoryAllocator ( void buf,
size_t  size 
)
inline

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

Documentation des fonctions membres

◆ adjustedCapacity()

Int64 Arcane::impl::StackMemoryAllocator::adjustedCapacity ( MemoryAllocationArgs  ,
Int64  wanted_capacity,
Int64   
) const
inlinefinal

Définition à la ligne 54 du fichier SmallArray.h.

◆ allocate()

AllocatedMemoryInfo Arcane::impl::StackMemoryAllocator::allocate ( MemoryAllocationArgs  args,
Int64  new_size 
)
final

Définition à la ligne 34 du fichier SmallArray.cc.

◆ deallocate()

void Arcane::impl::StackMemoryAllocator::deallocate ( MemoryAllocationArgs  args,
AllocatedMemoryInfo  ptr 
)
finalvirtual

Libère la mémoire dont l'adresse de base est ptr.

Le pointeur ptr doit avoir été alloué via l'appel à allocate() ou reallocate() de cette instance.

La sémantique de cette méthode équivalente à free() et donc ptr peut être nul auquel cas aucune opération n'est effectuée.

Implémente Arccore::IMemoryAllocator3.

Définition à la ligne 90 du fichier SmallArray.cc.

◆ guarantedAlignment()

size_t Arcane::impl::StackMemoryAllocator::guarantedAlignment ( MemoryAllocationArgs  args) const
inlinefinalvirtual

Valeur de l'alignement garanti par l'allocateur.

Cette méthode permet de s'assurer qu'un allocateur a un alignement suffisant pour certaines opérations comme la vectorisation par exemple.

S'il n'y a aucune garantie, retourne 0.

Implémente Arccore::IMemoryAllocator3.

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

◆ hasRealloc()

bool Arcane::impl::StackMemoryAllocator::hasRealloc ( MemoryAllocationArgs  ) const
inlinefinalvirtual

Indique si l'allocateur supporte la sémantique de realloc.

Les allocateurs par défaut du C (malloc/realloc/free) supportent évidemment le realloc mais ce n'est pas forcément le cas des allocateurs spécifiques avec alignement mémoire (comme par exemple posix_memalign).

Réimplémentée à partir de Arccore::IMemoryAllocator3.

Définition à la ligne 50 du fichier SmallArray.h.

◆ reallocate()

AllocatedMemoryInfo Arcane::impl::StackMemoryAllocator::reallocate ( MemoryAllocationArgs  args,
AllocatedMemoryInfo  current_ptr,
Int64  new_size 
)
final

Définition à la ligne 51 du fichier SmallArray.cc.

Documentation des données membres

◆ m_preallocated_buffer

void* Arcane::impl::StackMemoryAllocator::m_preallocated_buffer = nullptr
private

Définition à la ligne 59 du fichier SmallArray.h.

◆ m_preallocated_size

Int64 Arcane::impl::StackMemoryAllocator::m_preallocated_size = 0
private

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


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