module A_fifo = process FIFO = { type client_type; integer size_fifo; %client_type default_client;% } ( ? event Tick; client_type client_in; event pull_client; ! client_type client_out; event alarm_empty; event alarm_full; boolean OK_put; boolean OK_get; ) (| (| new_client_in := client_in when OK_put | client_out ^= (when OK_get) ^* pull_client | (client_out, nb_clients, OK_put, OK_get) := basic_FIFO{client_type, size_fifo%, default_client% } (new_client_in) | nb_clients ^= Tick |) | (| alarm_full := when (nb_clients = size_fifo) | alarm_empty := when (nb_clients = 0) |) |) where integer nb_clients; client_type new_client_in; end; use BASIC_fifo_model_lib; end;