package com.zinep.sucursales;
import com.zinep.Agente;
import com.zinep.Cliente;
import com.zinep.Monto;
import com.zinep.Sucursal;
import com.zinep.agentes.Pagina;
import com.zinep.clientes.Pool;
import com.zinep.clientes.PoolDefault;
import com.zinep.utils.TimeManager;
import java.util.ArrayList;
import java.util.List;
/**
*
* @author tomas
*/
public class Virtual extends Sucursal {
private Pool<Cliente> cola = new PoolDefault<Cliente>();
public Virtual(String nombre, List<Agente> agentes, Monto montoDisponibleUYU, Monto montoDisponibleUSD) {
super(nombre, agentes, montoDisponibleUYU, montoDisponibleUSD);
for (Agente agente : agentes) {
agente.setSucursal(this);
}
}
public Virtual(String nombre, Monto montoDisponibleUYU, Monto montoDisponibleUSD) {
this(nombre, new ArrayList<Agente>(), montoDisponibleUYU, montoDisponibleUSD);
for (int i = 0; i < 50; i++) {
Agente agente = new Pagina();
agentes.add(agente);
agente.setCola(cola);
}
for (Agente agente : agentes) {
agente.setSucursal(this);
}
}
@Override
public void entraCliente(Cliente cliente) {
TimeManager.get().log(this + " entra cliente:" + cliente);
cola.put(cliente);
}
@Override
protected void ejecutar() {
if (tareaActual == null) {
// Hay que elegir cual tarea procesar, si no se elije se hará FIFO
}
}
@Override
public String toString() {
return "Virtual{" + "montos = " + montos + '}';
}
}