#lang scheme
;(require mzlib/trace)

(require "BANCO-Clase-Sistema.ss")

(define banco (make-object sistema%))

(require "Agentes-concurrentes.ss")

;;;; LOS EJEMPLARES DE AGENTE
(define interfaz (make-object interfaz% (list "abrir" "ingresar" "ingreso" "sacar" "retirar" "saldo" "estado") banco ))

(define abrir-agente (make-object agente-abrir-cc% banco))

(define ingresar-agente (make-object agente-ingresar-cc% banco))

(define sacar-agente (make-object agente-sacar-cc% banco))

(define saldo-agente (make-object agente-saldo-cc% banco))

;;;;;;;;;;;;;AHORA INCLUIMOS LOS AGENTES

(send banco set-agentes (list abrir-agente ingresar-agente sacar-agente saldo-agente))
(send banco set-interfaz interfaz)

(do ((n 0 (add1 n)))
  ((> n 10) "sucursal cerrada")
  (newline)
  (newline)
  (send banco operar) )