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

Allocateur mémoire via malloc/realloc/free. Plus de détails...

#include </__w/arcaneframework.github.io/arcaneframework.github.io/framework/arccore/src/collections/arccore/collections/IMemoryAllocator.h>

+ Graphe d'héritage de Arccore::DefaultMemoryAllocator:
+ Graphe de collaboration de Arccore::DefaultMemoryAllocator:

Fonctions membres publiques

bool hasRealloc () const override
 
void * allocate (size_t new_size) override
 
void * reallocate (void *current_ptr, size_t new_size) override
 
void deallocate (void *ptr) override
 
size_t adjustCapacity (size_t wanted_capacity, size_t element_size) override
 
size_t guarantedAlignment () override
 
virtual size_t adjustCapacity (size_t wanted_capacity, size_t element_size)=0
 
virtual AllocatedMemoryInfo allocate (MemoryAllocationArgs args, Int64 new_size)
 Alloue de la mémoire pour new_size octets et retourne le pointeur.
 
virtual void * allocate (size_t new_size)=0
 
virtual void deallocate (MemoryAllocationArgs args, AllocatedMemoryInfo ptr)
 Libère la mémoire dont l'adresse de base est ptr.
 
virtual void deallocate (void *ptr)=0
 
virtual size_t guarantedAlignment (MemoryAllocationArgs args) const
 Valeur de l'alignement garanti par l'allocateur.
 
virtual size_t guarantedAlignment ()=0
 
virtual bool hasRealloc (MemoryAllocationArgs args) const
 Indique si l'allocateur supporte la sémantique de realloc.
 
virtual bool hasRealloc () const=0
 
virtual AllocatedMemoryInfo reallocate (MemoryAllocationArgs args, AllocatedMemoryInfo current_ptr, Int64 new_size)
 Réalloue de la mémoire pour new_size octets et retourne le pointeur.
 
virtual void * reallocate (void *current_ptr, size_t new_size)=0
 
- Fonctions membres publiques hérités de Arccore::IMemoryAllocator
virtual ~IMemoryAllocator ()=default
 Détruit l'allocateur.
 
virtual Int64 adjustedCapacity (MemoryAllocationArgs args, Int64 wanted_capacity, Int64 element_size) const
 Ajuste la capacité suivant la taille d'élément.
 
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.
 

Description détaillée

Allocateur mémoire via malloc/realloc/free.

TODO: marquer les méthodes comme 'final'.

Définition à la ligne 258 du fichier arccore/src/collections/arccore/collections/IMemoryAllocator.h.

Documentation des fonctions membres

◆ adjustCapacity() [1/2]

size_t Arccore::DefaultMemoryAllocator::adjustCapacity ( size_t  wanted_capacity,
size_t  element_size 
)
overridevirtual

Implémente Arccore::IMemoryAllocator.

Définition à la ligne 106 du fichier MemoryAllocator.cc.

◆ adjustCapacity() [2/2]

virtual size_t Arccore::IMemoryAllocator::adjustCapacity ( size_t  wanted_capacity,
size_t  element_size 
)
virtual

◆ allocate() [1/3]

AllocatedMemoryInfo Arccore::IMemoryAllocator::allocate ( MemoryAllocationArgs  args,
Int64  new_size 
)
virtual

Alloue de la mémoire pour new_size octets et retourne le pointeur.

La sémantique est équivalent à malloc():

  • new_size peut valoir zéro et dans ce cas le pointeur retourné est soit nul, soit une valeur non spécifiée.
  • le pointeur retourné peut être nul si la mémoire n'a pas pu être allouée.

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

Réimplémentée dans Arccore::PrintableMemoryAllocator.

Définition à la ligne 75 du fichier MemoryAllocator.cc.

◆ allocate() [2/3]

void * Arccore::DefaultMemoryAllocator::allocate ( size_t  new_size)
overridevirtual

Implémente Arccore::IMemoryAllocator.

Définition à la ligne 79 du fichier MemoryAllocator.cc.

◆ allocate() [3/3]

virtual void * Arccore::IMemoryAllocator::allocate ( size_t  new_size)
virtual

◆ deallocate() [1/3]

void Arccore::IMemoryAllocator::deallocate ( MemoryAllocationArgs  args,
AllocatedMemoryInfo  ptr 
)
virtual

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.

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

Réimplémentée dans Arccore::PrintableMemoryAllocator.

Définition à la ligne 99 du fichier MemoryAllocator.cc.

◆ deallocate() [2/3]

void Arccore::DefaultMemoryAllocator::deallocate ( void *  ptr)
overridevirtual

Implémente Arccore::IMemoryAllocator.

Définition à la ligne 97 du fichier MemoryAllocator.cc.

◆ deallocate() [3/3]

virtual void Arccore::IMemoryAllocator::deallocate ( void *  ptr)
virtual

◆ guarantedAlignment() [1/3]

size_t Arccore::DefaultMemoryAllocator::guarantedAlignment ( )
inlineoverridevirtual

◆ guarantedAlignment() [2/3]

virtual size_t Arccore::IMemoryAllocator::guarantedAlignment ( )
virtual

◆ guarantedAlignment() [3/3]

size_t Arccore::IMemoryAllocator::guarantedAlignment ( MemoryAllocationArgs  args) const
virtual

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.

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

Définition à la ligne 120 du fichier MemoryAllocator.cc.

◆ hasRealloc() [1/3]

bool Arccore::DefaultMemoryAllocator::hasRealloc ( ) const
overridevirtual

Implémente Arccore::IMemoryAllocator.

Définition à la ligne 70 du fichier MemoryAllocator.cc.

◆ hasRealloc() [2/3]

virtual bool Arccore::IMemoryAllocator::hasRealloc ( ) const
virtual

◆ hasRealloc() [3/3]

bool Arccore::IMemoryAllocator::hasRealloc ( MemoryAllocationArgs  args) const
virtual

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 65 du fichier MemoryAllocator.cc.

◆ reallocate() [1/3]

AllocatedMemoryInfo Arccore::IMemoryAllocator::reallocate ( MemoryAllocationArgs  args,
AllocatedMemoryInfo  current_ptr,
Int64  new_size 
)
virtual

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():

  • current_ptr peut-être nul auquel cas cet appel est équivalent à allocate().
  • le pointeur retourné peut être nul si la mémoire n'a pas pu être allouée.

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

Réimplémentée dans Arccore::PrintableMemoryAllocator.

Définition à la ligne 88 du fichier MemoryAllocator.cc.

◆ reallocate() [2/3]

void * Arccore::DefaultMemoryAllocator::reallocate ( void *  current_ptr,
size_t  new_size 
)
overridevirtual

Implémente Arccore::IMemoryAllocator.

Définition à la ligne 88 du fichier MemoryAllocator.cc.

◆ reallocate() [3/3]

virtual void * Arccore::IMemoryAllocator::reallocate ( void *  current_ptr,
size_t  new_size 
)
virtual

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