X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Ffcp%2Fhighlevel%2FFcpClient.java;h=91a27f094c90b4fa0ec631f51753479b685d9886;hb=3b2fa4e1fd944f625db89425691ca98123cde0ee;hp=b738e262ca8431c69246d4188e4a38d2ca4b9096;hpb=ccd328332da86e58a98e991c3d4e31e56e906547;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 b738e26..91a27f0 100644 --- a/src/main/java/net/pterodactylus/fcp/highlevel/FcpClient.java +++ b/src/main/java/net/pterodactylus/fcp/highlevel/FcpClient.java @@ -92,6 +92,9 @@ public class FcpClient { /** Whether the client is currently connected. */ private volatile boolean connected; + /** The listener for “connection closed” events. */ + private FcpListener connectionClosedListener; + /** * Creates an FCP client with the given name. * @@ -147,7 +150,7 @@ public class FcpClient { * The Freenet node’s FCP port */ public FcpClient(InetAddress host, int port) { - this(new FcpConnection(host, port)); + this(new FcpConnection(host, port), false); } /** @@ -173,7 +176,7 @@ public class FcpClient { public FcpClient(FcpConnection fcpConnection, boolean connected) { this.fcpConnection = fcpConnection; this.connected = connected; - fcpConnection.addFcpListener(new FcpAdapter() { + connectionClosedListener = new FcpAdapter() { /** * {@inheritDoc} @@ -184,7 +187,8 @@ public class FcpClient { FcpClient.this.connected = false; fcpClientListenerManager.fireFcpClientDisconnected(); } - }); + }; + fcpConnection.addFcpListener(connectionClosedListener); } // @@ -318,6 +322,13 @@ public class FcpClient { return connected; } + /** + * Detaches this client from its underlying FCP connection. + */ + public void detach() { + fcpConnection.removeFcpListener(connectionClosedListener); + } + // // PEER MANAGEMENT //