X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Ffcp%2Fhighlevel%2FFcpClient.java;h=73998185b61cc4a0577d99a09f57dab99ec644c0;hb=9eefde565838c38a0eedde679936e58acfa25577;hp=3012e0011c1fc9b262921c3190b6ba2e5162fc5f;hpb=508624458578f01a393f8b44f32b98b40054fdc8;p=jFCPlib.git diff --git a/src/main/java/net/pterodactylus/fcp/highlevel/FcpClient.java b/src/main/java/net/pterodactylus/fcp/highlevel/FcpClient.java index 3012e00..7399818 100644 --- a/src/main/java/net/pterodactylus/fcp/highlevel/FcpClient.java +++ b/src/main/java/net/pterodactylus/fcp/highlevel/FcpClient.java @@ -83,46 +83,40 @@ public class FcpClient { /** Listener management. */ private final FcpClientListenerManager fcpClientListenerManager = new FcpClientListenerManager(this); - /** The name of this client. */ - private final String name; - /** The underlying FCP connection. */ private final FcpConnection fcpConnection; + /** The {@link NodeHello} data sent by the node on connection. */ + private volatile NodeHello nodeHello; + /** Whether the client is currently connected. */ private volatile boolean connected; /** * Creates an FCP client with the given name. * - * @param name - * The name of the FCP client * @throws UnknownHostException * if the hostname “localhost” is unknown */ - public FcpClient(String name) throws UnknownHostException { - this(name, "localhost"); + public FcpClient() throws UnknownHostException { + this("localhost"); } /** * Creates an FCP client. * - * @param name - * The name of the FCP client * @param hostname * The hostname of the Freenet node * @throws UnknownHostException * if the given hostname can not be resolved */ - public FcpClient(String name, String hostname) throws UnknownHostException { - this(name, hostname, FcpConnection.DEFAULT_PORT); + public FcpClient(String hostname) throws UnknownHostException { + this(hostname, FcpConnection.DEFAULT_PORT); } /** * Creates an FCP client. * - * @param name - * The name of the FCP client * @param hostname * The hostname of the Freenet node * @param port @@ -130,34 +124,29 @@ public class FcpClient { * @throws UnknownHostException * if the given hostname can not be resolved */ - public FcpClient(String name, String hostname, int port) throws UnknownHostException { - this(name, InetAddress.getByName(hostname), port); + public FcpClient(String hostname, int port) throws UnknownHostException { + this(InetAddress.getByName(hostname), port); } /** * Creates an FCP client. * - * @param name - * The name of the FCP client * @param host * The host address of the Freenet node */ - public FcpClient(String name, InetAddress host) { - this(name, host, FcpConnection.DEFAULT_PORT); + public FcpClient(InetAddress host) { + this(host, FcpConnection.DEFAULT_PORT); } /** * Creates an FCP client. * - * @param name - * The name of the FCP client * @param host * The host address of the Freenet node * @param port * The Freenet node’s FCP port */ - public FcpClient(String name, InetAddress host, int port) { - this.name = name; + public FcpClient(InetAddress host, int port) { fcpConnection = new FcpConnection(host, port); fcpConnection.addFcpListener(new FcpAdapter() { @@ -218,18 +207,43 @@ public class FcpClient { } // + // ACCESSORS + // + + /** + * Returns the {@link NodeHello} object that the node returned when + * connecting. + * + * @return The {@code NodeHello} data container + */ + public NodeHello getNodeHello() { + return nodeHello; + } + + /** + * Returns the underlying FCP connection. + * + * @return The underlying FCP connection + */ + public FcpConnection getConnection() { + return fcpConnection; + } + + // // ACTIONS // /** * Connects the FCP client. * + * @param name + * The name of the client * @throws IOException * if an I/O error occurs * @throws FcpException * if an FCP error occurs */ - public void connect() throws IOException, FcpException { + public void connect(final String name) throws IOException, FcpException { checkConnected(false); connected = true; new ExtendedFcpAdapter() { @@ -251,7 +265,9 @@ public class FcpClient { * {@inheritDoc} */ @Override + @SuppressWarnings("synthetic-access") public void receivedNodeHello(FcpConnection fcpConnection, NodeHello nodeHello) { + FcpClient.this.nodeHello = nodeHello; completionLatch.countDown(); } }.execute();