package org.limewire.nio; import java.io.IOException; import java.net.InetAddress; import java.net.ServerSocket; import javax.net.ServerSocketFactory; import org.limewire.nio.observer.AcceptObserver; /** * Constructs non-blocking {@link ServerSocket ServerSockets}. */ public abstract class NBServerSocketFactory extends ServerSocketFactory { /** * Constructs a new, unconnected <code>ServerSocket</code> that will notify * the given <code>AcceptObserver</code> when new connections arrive. You * must call 'bind' on the socket to begin accepting new connections. * * @throws IOException */ public abstract ServerSocket createServerSocket(AcceptObserver observer) throws IOException; /** * Constructs a new <code>ServerSocket</code> bound at the given port. * The given observer will be notified when new incoming connections are accepted. * * @throws IOException */ public abstract ServerSocket createServerSocket(int port, AcceptObserver observer) throws IOException; /** * Constructs a new <code>ServerSocket</code> bound at the given port, using * the given backlog. The given <code>AcceptObserver</code> will be notified * when new incoming connections are accepted. * * @throws IOException */ public abstract ServerSocket createServerSocket(int port, int backlog, AcceptObserver observer) throws IOException; /** * Constructs a new <code>ServerSocket</code> bound at the given port and * given address, using the given backlog. * The given <code>AcceptObserver</code> will be notified when new incoming * connections are accepted. * * @throws IOException */ public abstract ServerSocket createServerSocket(int port, int backlog, InetAddress bindAddr, AcceptObserver observer) throws IOException; }