package com.limegroup.gnutella.io; import java.io.IOException; import java.net.InetAddress; import java.net.Socket; import java.net.SocketAddress; import java.net.UnknownHostException; /** * Abstract class that allows a Socket to provide * a connect method that takes a ConnectObserver. */ public abstract class NBSocket extends Socket { /** * Connects to the specified address within the given timeout (in milliseconds). * The given ConnectObserver will be notified of success or failure. * In the event of success, observer.handleConnect is called. In a failure, * observer.shutdown is called. observer.handleIOException is never called. * * Returns true if this was able to connect immediately. The observer is still * notified about the success even it it was immediate. * Returns false if it was unable to connect immediately. The observer will * receive the connection events. * * This method always returns immediately. */ public abstract boolean connect(SocketAddress addr, int timeout, ConnectObserver observer); // a bunch of Constructors. public NBSocket() { super(); } public NBSocket(InetAddress addr, int port) throws IOException { super(addr, port); } public NBSocket(InetAddress addr, int port, InetAddress localAddr, int localPort) throws IOException { super(addr, port, localAddr, localPort); } public NBSocket(String addr, int port) throws UnknownHostException, IOException { super(addr, port); } public NBSocket(String addr, int port, InetAddress localAddr, int localPort) throws IOException { super(addr, port, localAddr, localPort); } }