From: David ‘Bombe’ Roden Date: Fri, 15 Jan 2010 11:25:40 +0000 (+0100) Subject: Allow detaching the client from its connection. X-Git-Tag: v0.1.3^2~25 X-Git-Url: https://git.pterodactylus.net/?a=commitdiff_plain;h=c66c2899de040c50abc2c8638ca242fe0bc1af1b;p=jFCPlib.git Allow detaching the client from its connection. --- diff --git a/src/main/java/net/pterodactylus/fcp/highlevel/FcpClient.java b/src/main/java/net/pterodactylus/fcp/highlevel/FcpClient.java index b738e26..78cb198 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. * @@ -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 //