Allocateur avec buffer pré-alloué. Plus de détails...
#include <arcane/utils/SmallArray.h>
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 | |
void * | m_preallocated_buffer = nullptr |
Int64 | m_preallocated_size = 0 |
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.
|
inline |
Définition à la ligne 43 du fichier SmallArray.h.
|
inlinefinal |
Définition à la ligne 54 du fichier SmallArray.h.
|
final |
Définition à la ligne 34 du fichier SmallArray.cc.
|
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.
|
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.
|
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.
|
final |
Définition à la ligne 51 du fichier SmallArray.cc.
Définition à la ligne 59 du fichier SmallArray.h.
|
private |
Définition à la ligne 60 du fichier SmallArray.h.