package org.limewire.nio;
import java.io.IOException;
import java.net.ServerSocket;
import org.limewire.nio.observer.AcceptObserver;
/**
* Returns new sockets. The socket can be an unconnected <code>NBSocket</code>
* or a {@link ServerSocket} which is either bound, or not bound.
*/
public class SocketFactory {
/**
* Returns an unconnected <code>NBSocket</code>.
*/
public static NBSocket newSocket() throws IOException {
return new NIOSocket(); // based on NIO
// return new BlockingSocketAdapter(); // based on IO
}
/**
* Returns a new <code>ServerSocket</code>.
*/
public static ServerSocket newServerSocket(int port, AcceptObserver observer) throws IOException {
return new NIOServerSocket(port, observer); // based on NIO
// return new BlockingServerSocketAdapter(port, observer); // based on IO
}
/**
* Returns a new <code>ServerSocket</code> with the observer.
* The socket is NOT BOUND.
*/
public static ServerSocket newServerSocket(AcceptObserver observer) throws IOException {
return new NIOServerSocket(observer); // based on NIO
// return new BlockingServerSocketAdapter(observer); // based on IO
}
}