Allocateur mémoire via malloc/realloc/free. Plus de détails...
Fonctions membres publiques | |
bool | hasRealloc (MemoryAllocationArgs) const override |
Indique si l'allocateur supporte la sémantique de realloc. | |
AllocatedMemoryInfo | allocate (MemoryAllocationArgs, Int64 new_size) override |
Alloue de la mémoire pour new_size octets et retourne le pointeur. | |
AllocatedMemoryInfo | reallocate (MemoryAllocationArgs, AllocatedMemoryInfo current_ptr, Int64 new_size) override |
Réalloue de la mémoire pour new_size octets et retourne le pointeur. | |
void | deallocate (MemoryAllocationArgs, AllocatedMemoryInfo ptr) override |
Libère la mémoire dont l'adresse de base est ptr. | |
Int64 | adjustedCapacity (MemoryAllocationArgs, Int64 wanted_capacity, Int64 element_size) const override |
Ajuste la capacité suivant la taille d'élément. | |
size_t | guaranteedAlignment (MemoryAllocationArgs) const override |
Valeur de l'alignement garanti par l'allocateur. | |
eMemoryResource | memoryResource () const override |
Ressource mémoire fournie par l'allocateur. | |
![]() | |
virtual | ~IMemoryAllocator ()=default |
Détruit l'allocateur. | |
virtual size_t | guarantedAlignment (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. | |
Attributs privés statiques | |
static DefaultMemoryAllocator3 | shared_null_instance |
Amis | |
class | ArrayMetaData |
Allocateur mémoire via malloc/realloc/free.
TODO: marquer les méthodes comme 'final'.
Définition à la ligne 166 du fichier arccore/src/collections/arccore/collections/IMemoryAllocator.h.
|
overridevirtual |
Ajuste la capacité suivant la taille d'élément.
Cette méthode est utilisée pour éventuellement modifié le nombre d'éléments alloués suivant leur taille. Cela permet par exemple pour les allocateurs alignés de garantir que le nombre d'éléments alloués est un multiple de cet alignement.
Implémente Arccore::IMemoryAllocator.
Définition à la ligne 115 du fichier MemoryAllocator.cc.
Référencé par TesterMemoryAllocatorV3::adjustedCapacity().
|
overridevirtual |
Alloue de la mémoire pour new_size octets et retourne le pointeur.
La sémantique est équivalent à malloc():
Implémente Arccore::IMemoryAllocator.
Réimplémentée dans Arccore::PrintableMemoryAllocator, et Arccore::PrintableMemoryAllocator.
Définition à la ligne 88 du fichier MemoryAllocator.cc.
Référencé par Arccore::PrintableMemoryAllocator::allocate(), et TesterMemoryAllocatorV3::allocate().
|
overridevirtual |
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::IMemoryAllocator.
Réimplémentée dans Arccore::PrintableMemoryAllocator, et Arccore::PrintableMemoryAllocator.
Définition à la ligne 106 du fichier MemoryAllocator.cc.
Références Arccore::AllocatedMemoryInfo::baseAddress().
Référencé par Arccore::PrintableMemoryAllocator::deallocate(), et TesterMemoryAllocatorV3::deallocate().
|
inlineoverridevirtual |
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::IMemoryAllocator.
Définition à la ligne 182 du fichier arccore/src/collections/arccore/collections/IMemoryAllocator.h.
Référencé par TesterMemoryAllocatorV3::guaranteedAlignment().
|
overridevirtual |
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::IMemoryAllocator.
Définition à la ligne 79 du fichier MemoryAllocator.cc.
Référencé par TesterMemoryAllocatorV3::hasRealloc().
|
inlineoverridevirtual |
Ressource mémoire fournie par l'allocateur.
Réimplémentée à partir de Arccore::IMemoryAllocator.
Définition à la ligne 183 du fichier arccore/src/collections/arccore/collections/IMemoryAllocator.h.
|
overridevirtual |
Réalloue de la mémoire pour new_size octets et retourne le pointeur.
Le pointeur current_ptr doit avoir été alloué via l'appel à allocate() ou reallocate() de cette instance.
La sémantique de cette méthode est équivalente à realloc():
Implémente Arccore::IMemoryAllocator.
Réimplémentée dans Arccore::PrintableMemoryAllocator, et Arccore::PrintableMemoryAllocator.
Définition à la ligne 97 du fichier MemoryAllocator.cc.
Références Arccore::AllocatedMemoryInfo::baseAddress().
Référencé par Arccore::PrintableMemoryAllocator::reallocate(), et TesterMemoryAllocatorV3::reallocate().
|
friend |
Définition à la ligne 169 du fichier arccore/src/collections/arccore/collections/IMemoryAllocator.h.
|
staticprivate |
Définition à la ligne 173 du fichier arccore/src/collections/arccore/collections/IMemoryAllocator.h.