//realizacion del metodo de la interfaz, el servidor se comporta segun el evento y el servicio que se calculo public void hacerAlgo(string evento, double reloj, int _servicio) { //Si el evento es la llegada de un cliente y esta libre y loa atiende if (cola.esTuEventoLlegada(evento, _servicio)) { if (estado == 0) { if (!cola.estaAtendido()) { cola.quitarElemento(); cola.setAtencion(true); proxFAT = calcularProximaFAT() + reloj; estado = 1; } } } //si el evento es un fin de atencion y hay clientes en la cola entonces calcula el proximo fin de atencion y quita un cliente de la cola if (evento == eventoFat) { if (cola.tenesAlgo()) { cola.quitarElemento(); proxFAT = calcularProximaFAT() + reloj; } else { proxFAT = -1; estado = 0; } } }
public void hacerAlgo(string evento, double reloj, int _servicio) { //evalua si el servidor esta interrupido if (interrumpido) { //si esta interrumpido y el evento es fin de interrupcion entonces se liber el servidor if (evento == eventoFinInterrupcion) { estado = 0; interrumpido = false; atendidos = 0; proxFAT = -1; //verifica si la cola tiene algo en ese caso atiende un cliente if (cola.tenesAlgo()) { cola.quitarElemento(); proxFAT = calcularProximaFAT() + reloj; estado = 1; atendidos += 1; } else { proxFAT = -1; estado = 0; } } } else { //verifica ante un evento si la cola esta libre y la atiende if (estado == 0 && cola.tenesAlgo()) { if (!cola.estaAtendido()) { cola.quitarElemento(); proxFAT = calcularProximaFAT() + reloj; estado = 1; atendidos += 1; } } //verifica si el evento y el servicio pertenece a la cola en caso de estar libre lo atiende if (cola.esTuEventoLlegada(evento, _servicio)) { if (estado == 0 && cola.tenesAlgo()) { if (!cola.estaAtendido()) { cola.quitarElemento(); cola.setAtencion(true); proxFAT = calcularProximaFAT() + reloj; estado = 1; atendidos += 1; } } } // en caso de el evento sea un fin de atencion y lo cola tiene clientes, atiende a uno sino se libera if (evento == eventoFat) { if (cola.tenesAlgo()) { cola.quitarElemento(); proxFAT = calcularProximaFAT() + reloj; atendidos += 1; } else { proxFAT = -1; estado = 0; } } } if (cantLimite == atendidos && !interrumpido) { interrumpido = true; proxFAT = calcularProximaFAT() + reloj; estado = 2; } }