Sintaxis ADA

Sintaxis ADA

de Martin Pacheco -
Número de respuestas: 1
Si yo tengo definido:
TASK Despensa IS
ENTRY get(ins: IN OUT Insumos)
END Despensa

Es decir, una tarea que solo tiene una única instancia (al no tener TYPE en la  declaracion).

Si yo quiero pedir una cita con la ENTRY get de despensa, no tendria que tener declarado globalmente en mi programa algo así?

DESPENSA : Despensa;

Así puedo desde otra tarea por ejemplo, pedir cita con get de DESPENSA?

DESPENSA.get(insumos)


En respuesta a Martin Pacheco

Re: Sintaxis ADA

de Santiago Iturriaga -

Hola Martín:


Justamente, solamente cuando usas TASK TYPE es que tenés que definir DESPENSA de forma global. Cuando usas la declaración de tipo TYPE no es necesario definir nada más. Es decir, las dos opciones son las siguientes.


1) Definir una task con una única instancia:

task Despensa is

   entry GET(...);

end Despensa


Y luego:

Despensa.GET(...);


2) Definir un tipo de task que luego podes instanciar muchas veces:

task type DESPENSA is

   entry GET(...);

end DESPENSA


Despensa : DESPENSA;

OtraDespensa : DESPENSA;

MuchasDespensas : array (0 .. 15) of DESPENSA;


Y luego:

Despensa.GET(...);

OtraDespensa.GET(...);

MuchasDespensas(2).GET(...);


Saludos,

Santiago.