From 8cccf818170f022f84e9c1db7cad5eb7d6cc3f8e Mon Sep 17 00:00:00 2001 From: =?utf8?q?David=20=E2=80=98Bombe=E2=80=99=20Roden?= Date: Tue, 13 May 2008 22:05:54 +0000 Subject: [PATCH] move hostname stuff to connect methods add isConnected git-svn-id: http://trooper/svn/projects/jFCPlib/branch/high-level-client@868 c3eda9e8-030b-0410-8277-bc7414b0a119 --- .../fcp/highlevel/HighLevelClient.java | 111 ++++++++++----------- 1 file changed, 50 insertions(+), 61 deletions(-) diff --git a/src/net/pterodactylus/fcp/highlevel/HighLevelClient.java b/src/net/pterodactylus/fcp/highlevel/HighLevelClient.java index e62c428..5de3aa2 100644 --- a/src/net/pterodactylus/fcp/highlevel/HighLevelClient.java +++ b/src/net/pterodactylus/fcp/highlevel/HighLevelClient.java @@ -105,12 +105,6 @@ public class HighLevelClient { /** The name of the client. */ private final String clientName; - /** The address of the node. */ - private InetAddress address; - - /** The port number of the node. */ - private int port; - /** The FCP connection to the node. */ private FcpConnection fcpConnection; @@ -123,7 +117,7 @@ public class HighLevelClient { /** The listeners for progress events. */ private List highLevelProgressListeners = Collections.synchronizedList(new ArrayList()); - /** The callback for {@link #connect()}. */ + /** The callback for {@link #connect(String)}. */ private HighLevelCallback connectCallback; /** Mapping from request identifiers to callbacks. */ @@ -150,60 +144,9 @@ public class HighLevelClient { * * @param clientName * The name of the client - * @throws UnknownHostException - * if the hostname of the node can not be resolved. - */ - public HighLevelClient(String clientName) throws UnknownHostException { - this(clientName, "localhost"); - } - - /** - * Creates a new high-level client that connects to a node on the given - * host. - * - * @param clientName - * The name of the client - * @param host - * The hostname of the node - * @throws UnknownHostException - * if the hostname of the node can not be resolved. - */ - public HighLevelClient(String clientName, String host) throws UnknownHostException { - this(clientName, host, FcpConnection.DEFAULT_PORT); - } - - /** - * Creates a new high-level client that connects to a node on the given - * host. - * - * @param clientName - * The name of the client - * @param host - * The hostname of the node - * @param port - * The port number of the node - * @throws UnknownHostException - * if the hostname of the node can not be resolved. - */ - public HighLevelClient(String clientName, String host, int port) throws UnknownHostException { - this(clientName, InetAddress.getByName(host), port); - } - - /** - * Creates a new high-level client that connects to a node at the given - * address. - * - * @param clientName - * The name of the client - * @param address - * The address of the node - * @param port - * The port number of the node */ - public HighLevelClient(String clientName, InetAddress address, int port) { + public HighLevelClient(String clientName) { this.clientName = clientName; - this.address = address; - this.port = port; } // @@ -302,6 +245,16 @@ public class HighLevelClient { return fcpConnection; } + /** + * Returns whether the node is connected. + * + * @return true if the node is currently connected, + * false otherwise + */ + public boolean isConnected() { + return fcpConnection != null; + } + // // ACTIONS // @@ -309,11 +262,47 @@ public class HighLevelClient { /** * Connects the client. * + * @param hostname + * The hostname of the node + * @return A callback with a connection result + * @throws UnknownHostException + * if the hostname can not be resolved + * @throws IOException + * if an I/O error occurs communicating with the node + */ + public HighLevelCallback connect(String hostname) throws UnknownHostException, IOException { + return connect(hostname, 9481); + } + + /** + * Connects the client. + * + * @param hostname + * The hostname of the node + * @param port + * The port number of the node + * @return A callback with a connection result + * @throws UnknownHostException + * if the hostname can not be resolved + * @throws IOException + * if an I/O error occurs communicating with the node + */ + public HighLevelCallback connect(String hostname, int port) throws UnknownHostException, IOException { + return connect(InetAddress.getByName(hostname), port); + } + + /** + * Connects the client. + * + * @param address + * The address of the node + * @param port + * The port number of the node * @return A callback with a connection result * @throws IOException * if an I/O error occurs communicating with the node */ - public HighLevelCallback connect() throws IOException { + public HighLevelCallback connect(InetAddress address, int port) throws IOException { fcpConnection = new FcpConnection(address, port); fcpConnection.addFcpListener(highLevelClientFcpListener); fcpConnection.connect(); @@ -528,6 +517,7 @@ public class HighLevelClient { if (fcpConnection != null) { fcpConnection.close(); } + fcpConnection = null; fireClientDisconnected(throwable); } @@ -1073,7 +1063,6 @@ public class HighLevelClient { downloadResult.setFatallyFailedBlocks(simpleProgress.getFatallyFailed()); downloadResult.setTotalFinalized(simpleProgress.isFinalizedTotal()); downloadCallback.progressUpdated(); - return; } HighLevelProgress highLevelProgress = new HighLevelProgress(identifier, simpleProgress.getTotal(), simpleProgress.getRequired(), simpleProgress.getSucceeded(), simpleProgress.getFailed(), simpleProgress.getFatallyFailed(), simpleProgress.isFinalizedTotal()); fireProgressReceived(identifier, highLevelProgress); -- 2.7.4