Allouer

Attribut de l'instruction Type. Définition de l'allocation d'un objet du type courant.

Syntaxe

Allouer

Description

L'instruction Allouer permet de déclarer une méthode spéciale dont le but est d'allouer un nouvel objet du type courant.

Les demandes d'allocation des objets sont gérées statiquement ou dynamiquement par Up ! Compiler selon le contexte. Les demandes d'allocations font appel à la méthode spéciale Allouer. Par défaut, cette méthode est celle du noyau d'exécution qui est générique pour tous les types. Il est néanmoins possible de se définir sa propre méthode allocation. En ce cas, il s'agit d'une méthode fonctionnelle sans paramètre dont le type du résultat est le type courant.

Cette méthode doit être privée.

Si la méthode Allouer est définie, la méthode Liberer doit l'être également.

Cette méthode est automatiquement synchronisée par une déclaration implicite de l'inflexion Synchroniser. L'accès aux propriétés de l'objet est direct, ce qui permet d'améliorer nettement les performances.

Exemple

Type A
/****/ Prive : Fin Type
/* Le type A possede un allocateur et un desallocateur. */

Prive :
Type CacheA
/*********/ Fin Type
/* Definition d'un allocateur de A. */

Variable
/******/
Prive :
Prive :
/****************************************************************/
Fonction A.Allouer() Retourner A
/* Objet : Definition de l'allocateur de A. */
/****************************************************************/
Variable
/******/

Debut Pour I=0 JusquA 99 Faire /* Une valeur reallouee est libre dans le cache. */ /* Une valeur est libre dans le cache mais l'element A n'a pas ete allouee. */ Fin Pour
/* Plus de place dans le cache. */
Retourner Nul;
Fin Fonction

/****************************************************************/
Procedure A.Liberer(P1 : A)
/* Objet : Definition du desallocateur de A. */
/****************************************************************/
Variable
/******/

Debut
Pour I=0 JusquA 99 Faire Fin Pour
Fin Procedure

Principal
/*******/
Variable
/******/

Debut
/* Initialisation du cache. */
Pour I=0 JusquA 99 Faire Fin Pour
...
Fin Principal

Voir aussi

Liberer pour définir le désallocateur. LibererRessource pour libérer les ressources encapsulées par des objets au cours de l'arrêt d'un programme persistant.

Traduction

---------