From: David ‘Bombe’ Roden Date: Mon, 20 Jul 2009 05:57:40 +0000 (+0200) Subject: Implement firing of fcp-client-disconnected event. X-Git-Tag: v0.1.1~21 X-Git-Url: https://git.pterodactylus.net/?a=commitdiff_plain;h=ff012b8b8f162b1d2f9f471455f43545d63f7d4a;p=jFCPlib.git Implement firing of fcp-client-disconnected event. --- diff --git a/src/net/pterodactylus/fcp/highlevel/FcpClient.java b/src/net/pterodactylus/fcp/highlevel/FcpClient.java index 78a7c1f..f2a80a1 100644 --- a/src/net/pterodactylus/fcp/highlevel/FcpClient.java +++ b/src/net/pterodactylus/fcp/highlevel/FcpClient.java @@ -81,6 +81,9 @@ public class FcpClient { /** Object used for synchronization. */ private final Object syncObject = new Object(); + /** Listener management. */ + private final FcpClientListenerManager fcpClientListenerManager = new FcpClientListenerManager(this); + /** The name of this client. */ private final String name; @@ -157,6 +160,41 @@ public class FcpClient { public FcpClient(String name, InetAddress host, int port) { this.name = name; fcpConnection = new FcpConnection(host, port); + fcpConnection.addFcpListener(new FcpAdapter() { + + /** + * {@inheritDoc} + */ + @Override + @SuppressWarnings("synthetic-access") + public void connectionClosed(FcpConnection fcpConnection, Throwable throwable) { + fcpClientListenerManager.fireFcpClientDisconnected(); + } + }); + } + + // + // LISTENER MANAGEMENT + // + + /** + * Adds an FCP client listener to the list of registered listeners. + * + * @param fcpClientListener + * The FCP client listener to add + */ + public void addFcpClientListener(FcpClientListener fcpClientListener) { + fcpClientListenerManager.addListener(fcpClientListener); + } + + /** + * Removes an FCP client listener from the list of registered listeners. + * + * @param fcpClientListener + * The FCP client listener to remove + */ + public void removeFcpClientListener(FcpClientListener fcpClientListener) { + fcpClientListenerManager.removeListener(fcpClientListener); } //