package org.deftserver.util;
import java.io.IOException;
import java.nio.channels.SelectionKey;
import java.nio.channels.ServerSocketChannel;
import org.deftserver.io.IOHandler;
import org.deftserver.io.IOLoop;
import org.deftserver.web.AsyncCallback;
public class AcceptUtil {
public static void accept(ServerSocketChannel server, final AsyncCallback cb) {
accept(IOLoop.INSTANCE, server, cb);
}
public static void accept(IOLoop ioLoop, ServerSocketChannel server, final AsyncCallback cb) {
ioLoop.addHandler(
server,
new AcceptingIOHandler() {public void handleAccept(SelectionKey key) { cb.onCallback(); }},
SelectionKey.OP_ACCEPT,
null
);
}
private static abstract class AcceptingIOHandler implements IOHandler {
public void handleConnect(SelectionKey key) throws IOException {}
public void handleRead(SelectionKey key) throws IOException {}
public void handleWrite(SelectionKey key) {}
}
}