package org.basex.server;
import java.io.IOException;
import org.basex.BaseXServer;
import org.basex.util.Performance;
/**
* This class delays the response to the specified client.
*
* @author BaseX Team 2005-12, BSD License
* @author Andreas Weiler
* @author Christian Gruen
*/
final class ClientDelayer extends Thread {
/** Server instance. */
private final BaseXServer server;
/** Client listener. */
private final ClientListener listener;
/** Delay. */
private int delay;
/**
* Constructor.
* @param del delay
* @param cl client listener
* @param srv server instance
*/
public ClientDelayer(final int del, final ClientListener cl,
final BaseXServer srv) {
delay = del;
server = srv;
listener = cl;
setDaemon(true);
}
@Override
public void run() {
// loop until delay is exhausted, or until server is stopped
while(server.running && --delay > 0) Performance.sleep(1000);
try {
// send negative flag
listener.send(false);
} catch(final IOException ex) {
// socket was closed..
}
}
}