implement closeable interface
authorDavid ‘Bombe’ Roden <bombe@freenetproject.org>
Sat, 3 May 2008 20:07:37 +0000 (20:07 +0000)
committerDavid ‘Bombe’ Roden <bombe@freenetproject.org>
Sat, 3 May 2008 20:07:37 +0000 (20:07 +0000)
deprecate disconnect() in favour of close()

git-svn-id: http://trooper/svn/projects/jFCPlib/branch/high-level-client@843 c3eda9e8-030b-0410-8277-bc7414b0a119

src/net/pterodactylus/fcp/FcpConnection.java

index dee158e..5757d61 100644 (file)
@@ -19,6 +19,7 @@
 
 package net.pterodactylus.fcp;
 
+import java.io.Closeable;
 import java.io.FilterInputStream;
 import java.io.IOException;
 import java.io.InputStream;
@@ -35,11 +36,11 @@ import java.util.logging.Logger;
 
 /**
  * An FCP connection to a Freenet node.
- * 
+ *
  * @author David ‘Bombe’ Roden &lt;bombe@freenetproject.org&gt;
  * @version $Id$
  */
-public class FcpConnection {
+public class FcpConnection implements Closeable {
 
        /** Logger. */
        private static final Logger logger = Logger.getLogger(FcpConnection.class.getName());
@@ -74,7 +75,7 @@ public class FcpConnection {
        /**
         * Creates a new FCP connection to the freenet node running on localhost,
         * using the default port.
-        * 
+        *
         * @throws UnknownHostException
         *             if the hostname can not be resolved
         */
@@ -85,7 +86,7 @@ public class FcpConnection {
        /**
         * Creates a new FCP connection to the Freenet node running on the given
         * host, listening on the default port.
-        * 
+        *
         * @param host
         *            The hostname of the Freenet node
         * @throws UnknownHostException
@@ -98,7 +99,7 @@ public class FcpConnection {
        /**
         * Creates a new FCP connection to the Freenet node running on the given
         * host, listening on the given port.
-        * 
+        *
         * @param host
         *            The hostname of the Freenet node
         * @param port
@@ -113,7 +114,7 @@ public class FcpConnection {
        /**
         * Creates a new FCP connection to the Freenet node running at the given
         * address, listening on the default port.
-        * 
+        *
         * @param address
         *            The address of the Freenet node
         */
@@ -124,7 +125,7 @@ public class FcpConnection {
        /**
         * Creates a new FCP connection to the Freenet node running at the given
         * address, listening on the given port.
-        * 
+        *
         * @param address
         *            The address of the Freenet node
         * @param port
@@ -141,7 +142,7 @@ public class FcpConnection {
 
        /**
         * Adds the given listener to the list of listeners.
-        * 
+        *
         * @param fcpListener
         *            The listener to add
         */
@@ -151,7 +152,7 @@ public class FcpConnection {
 
        /**
         * Removes the given listener from the list of listeners.
-        * 
+        *
         * @param fcpListener
         *            The listener to remove
         */
@@ -161,7 +162,7 @@ public class FcpConnection {
 
        /**
         * Notifies listeners that a “NodeHello” message was received.
-        * 
+        *
         * @see FcpListener#receivedNodeHello(FcpConnection, NodeHello)
         * @param nodeHello
         *            The “NodeHello” message
@@ -175,7 +176,7 @@ public class FcpConnection {
        /**
         * Notifies listeners that a “CloseConnectionDuplicateClientName” message
         * was received.
-        * 
+        *
         * @see FcpListener#receivedCloseConnectionDuplicateClientName(FcpConnection,
         *      CloseConnectionDuplicateClientName)
         * @param closeConnectionDuplicateClientName
@@ -189,7 +190,7 @@ public class FcpConnection {
 
        /**
         * Notifies listeners that a “SSKKeypair” message was received.
-        * 
+        *
         * @see FcpListener#receivedSSKKeypair(FcpConnection, SSKKeypair)
         * @param sskKeypair
         *            The “SSKKeypair” message
@@ -202,7 +203,7 @@ public class FcpConnection {
 
        /**
         * Notifies listeners that a “Peer” message was received.
-        * 
+        *
         * @see FcpListener#receivedPeer(FcpConnection, Peer)
         * @param peer
         *            The “Peer” message
@@ -215,7 +216,7 @@ public class FcpConnection {
 
        /**
         * Notifies all listeners that an “EndListPeers” message was received.
-        * 
+        *
         * @see FcpListener#receivedEndListPeers(FcpConnection, EndListPeers)
         * @param endListPeers
         *            The “EndListPeers” message
@@ -228,7 +229,7 @@ public class FcpConnection {
 
        /**
         * Notifies all listeners that a “PeerNote” message was received.
-        * 
+        *
         * @see FcpListener#receivedPeerNote(FcpConnection, PeerNote)
         * @param peerNote
         */
@@ -240,7 +241,7 @@ public class FcpConnection {
 
        /**
         * Notifies all listeners that an “EndListPeerNotes” message was received.
-        * 
+        *
         * @see FcpListener#receivedEndListPeerNotes(FcpConnection,
         *      EndListPeerNotes)
         * @param endListPeerNotes
@@ -254,7 +255,7 @@ public class FcpConnection {
 
        /**
         * Notifies all listeners that a “PeerRemoved” message was received.
-        * 
+        *
         * @see FcpListener#receivedPeerRemoved(FcpConnection, PeerRemoved)
         * @param peerRemoved
         *            The “PeerRemoved” message
@@ -267,7 +268,7 @@ public class FcpConnection {
 
        /**
         * Notifies all listeners that a “NodeData” message was received.
-        * 
+        *
         * @see FcpListener#receivedNodeData(FcpConnection, NodeData)
         * @param nodeData
         *            The “NodeData” message
@@ -280,7 +281,7 @@ public class FcpConnection {
 
        /**
         * Notifies all listeners that a “TestDDAReply” message was received.
-        * 
+        *
         * @see FcpListener#receivedTestDDAReply(FcpConnection, TestDDAReply)
         * @param testDDAReply
         *            The “TestDDAReply” message
@@ -293,7 +294,7 @@ public class FcpConnection {
 
        /**
         * Notifies all listeners that a “TestDDAComplete” message was received.
-        * 
+        *
         * @see FcpListener#receivedTestDDAComplete(FcpConnection, TestDDAComplete)
         * @param testDDAComplete
         *            The “TestDDAComplete” message
@@ -306,7 +307,7 @@ public class FcpConnection {
 
        /**
         * Notifies all listeners that a “PersistentGet” message was received.
-        * 
+        *
         * @see FcpListener#receivedPersistentGet(FcpConnection, PersistentGet)
         * @param persistentGet
         *            The “PersistentGet” message
@@ -319,7 +320,7 @@ public class FcpConnection {
 
        /**
         * Notifies all listeners that a “PersistentPut” message was received.
-        * 
+        *
         * @see FcpListener#receivedPersistentPut(FcpConnection, PersistentPut)
         * @param persistentPut
         *            The “PersistentPut” message
@@ -333,7 +334,7 @@ public class FcpConnection {
        /**
         * Notifies all listeners that a “EndListPersistentRequests” message was
         * received.
-        * 
+        *
         * @see FcpListener#receivedEndListPersistentRequests(FcpConnection,
         *      EndListPersistentRequests)
         * @param endListPersistentRequests
@@ -347,7 +348,7 @@ public class FcpConnection {
 
        /**
         * Notifies all listeners that a “URIGenerated” message was received.
-        * 
+        *
         * @see FcpListener#receivedURIGenerated(FcpConnection, URIGenerated)
         * @param uriGenerated
         *            The “URIGenerated” message
@@ -360,7 +361,7 @@ public class FcpConnection {
 
        /**
         * Notifies all listeners that a “DataFound” message was received.
-        * 
+        *
         * @see FcpListener#receivedDataFound(FcpConnection, DataFound)
         * @param dataFound
         *            The “DataFound” message
@@ -373,7 +374,7 @@ public class FcpConnection {
 
        /**
         * Notifies all listeners that an “AllData” message was received.
-        * 
+        *
         * @see FcpListener#receivedAllData(FcpConnection, AllData)
         * @param allData
         *            The “AllData” message
@@ -386,7 +387,7 @@ public class FcpConnection {
 
        /**
         * Notifies all listeners that a “SimpleProgress” message was received.
-        * 
+        *
         * @see FcpListener#receivedSimpleProgress(FcpConnection, SimpleProgress)
         * @param simpleProgress
         *            The “SimpleProgress” message
@@ -399,7 +400,7 @@ public class FcpConnection {
 
        /**
         * Notifies all listeners that a “StartedCompression” message was received.
-        * 
+        *
         * @see FcpListener#receivedStartedCompression(FcpConnection,
         *      StartedCompression)
         * @param startedCompression
@@ -413,7 +414,7 @@ public class FcpConnection {
 
        /**
         * Notifies all listeners that a “FinishedCompression” message was received.
-        * 
+        *
         * @see FcpListener#receviedFinishedCompression(FcpConnection,
         *      FinishedCompression)
         * @param finishedCompression
@@ -428,7 +429,7 @@ public class FcpConnection {
        /**
         * Notifies all listeners that an “UnknownPeerNoteType” message was
         * received.
-        * 
+        *
         * @see FcpListener#receivedUnknownPeerNoteType(FcpConnection,
         *      UnknownPeerNoteType)
         * @param unknownPeerNoteType
@@ -443,7 +444,7 @@ public class FcpConnection {
        /**
         * Notifies all listeners that an “UnknownNodeIdentifier” message was
         * received.
-        * 
+        *
         * @see FcpListener#receivedUnknownNodeIdentifier(FcpConnection,
         *      UnknownNodeIdentifier)
         * @param unknownNodeIdentifier
@@ -457,7 +458,7 @@ public class FcpConnection {
 
        /**
         * Notifies all listeners that a “ConfigData” message was received.
-        * 
+        *
         * @see FcpListener#receivedConfigData(FcpConnection, ConfigData)
         * @param configData
         *            The “ConfigData” message
@@ -470,7 +471,7 @@ public class FcpConnection {
 
        /**
         * Notifies all listeners that a “GetFailed” message was received.
-        * 
+        *
         * @see FcpListener#receivedGetFailed(FcpConnection, GetFailed)
         * @param getFailed
         *            The “GetFailed” message
@@ -483,7 +484,7 @@ public class FcpConnection {
 
        /**
         * Notifies all listeners that a “PutFailed” message was received.
-        * 
+        *
         * @see FcpListener#receivedPutFailed(FcpConnection, PutFailed)
         * @param putFailed
         *            The “PutFailed” message
@@ -497,7 +498,7 @@ public class FcpConnection {
        /**
         * Notifies all listeners that an “IdentifierCollision” message was
         * received.
-        * 
+        *
         * @see FcpListener#receivedIdentifierCollision(FcpConnection,
         *      IdentifierCollision)
         * @param identifierCollision
@@ -511,7 +512,7 @@ public class FcpConnection {
 
        /**
         * Notifies all listeners that an “PersistentPutDir” message was received.
-        * 
+        *
         * @see FcpListener#receivedPersistentPutDir(FcpConnection,
         *      PersistentPutDir)
         * @param persistentPutDir
@@ -526,7 +527,7 @@ public class FcpConnection {
        /**
         * Notifies all listeners that a “PersistentRequestRemoved” message was
         * received.
-        * 
+        *
         * @see FcpListener#receivedPersistentRequestRemoved(FcpConnection,
         *      PersistentRequestRemoved)
         * @param persistentRequestRemoved
@@ -540,7 +541,7 @@ public class FcpConnection {
 
        /**
         * Notifies all listeners that a “SubscribedUSKUpdate” message was received.
-        * 
+        *
         * @see FcpListener#receivedSubscribedUSKUpdate(FcpConnection,
         *      SubscribedUSKUpdate)
         * @param subscribedUSKUpdate
@@ -554,7 +555,7 @@ public class FcpConnection {
 
        /**
         * Notifies all listeners that a “PluginInfo” message was received.
-        * 
+        *
         * @see FcpListener#receivedPluginInfo(FcpConnection, PluginInfo)
         * @param pluginInfo
         *            The “PluginInfo” message
@@ -567,7 +568,7 @@ public class FcpConnection {
 
        /**
         * Notifies all listeners that an “FCPPluginReply” message was received.
-        * 
+        *
         * @see FcpListener#receivedFCPPluginReply(FcpConnection, FCPPluginReply)
         * @param fcpPluginReply
         *            The “FCPPluginReply” message
@@ -581,7 +582,7 @@ public class FcpConnection {
        /**
         * Notifies all listeners that a “PersistentRequestModified” message was
         * received.
-        * 
+        *
         * @see FcpListener#receivedPersistentRequestModified(FcpConnection,
         *      PersistentRequestModified)
         * @param persistentRequestModified
@@ -595,7 +596,7 @@ public class FcpConnection {
 
        /**
         * Notifies all listeners that a “PutSuccessful” message was received.
-        * 
+        *
         * @see FcpListener#receivedPutSuccessful(FcpConnection, PutSuccessful)
         * @param putSuccessful
         *            The “PutSuccessful” message
@@ -608,7 +609,7 @@ public class FcpConnection {
 
        /**
         * Notifies all listeners that a “PutFetchable” message was received.
-        * 
+        *
         * @see FcpListener#receivedPutFetchable(FcpConnection, PutFetchable)
         * @param putFetchable
         *            The “PutFetchable” message
@@ -621,7 +622,7 @@ public class FcpConnection {
 
        /**
         * Notifies all listeners that a “ProtocolError” message was received.
-        * 
+        *
         * @see FcpListener#receivedProtocolError(FcpConnection, ProtocolError)
         * @param protocolError
         *            The “ProtocolError” message
@@ -634,7 +635,7 @@ public class FcpConnection {
 
        /**
         * Notifies all registered listeners that a message has been received.
-        * 
+        *
         * @see FcpListener#receivedMessage(FcpConnection, FcpMessage)
         * @param fcpMessage
         *            The message that was received
@@ -647,7 +648,7 @@ public class FcpConnection {
 
        /**
         * Notifies all listeners that the connection to the node was closed.
-        * 
+        *
         * @see FcpListener#connectionClosed(FcpConnection)
         */
        private void fireConnectionClosed() {
@@ -662,7 +663,7 @@ public class FcpConnection {
 
        /**
         * Connects to the node.
-        * 
+        *
         * @throws IOException
         *             if an I/O error occurs
         * @throws IllegalStateException
@@ -682,8 +683,19 @@ public class FcpConnection {
        /**
         * Disconnects from the node. If there is no connection to the node, this
         * method does nothing.
+        *
+        * @deprecated Use {@link #close()} instead
         */
+       @Deprecated
        public synchronized void disconnect() {
+               close();
+       }
+
+       /**
+        * Closes the connection. If there is no connection to the node, this method
+        * does nothing.
+        */
+       public void close() {
                if (connectionHandler == null) {
                        return;
                }
@@ -696,7 +708,7 @@ public class FcpConnection {
 
        /**
         * Sends the given FCP message.
-        * 
+        *
         * @param fcpMessage
         *            The FCP message to send
         * @throws IOException
@@ -714,7 +726,7 @@ public class FcpConnection {
        /**
         * Handles the given message, notifying listeners. This message should only
         * be called by {@link FcpConnectionHandler}.
-        * 
+        *
         * @param fcpMessage
         *            The received message
         */
@@ -827,7 +839,7 @@ public class FcpConnection {
        /**
         * Incremets the counter in {@link #incomingMessageStatistics} by <cod>1</code>
         * for the given message name.
-        * 
+        *
         * @param name
         *            The name of the message to count
         */
@@ -842,7 +854,7 @@ public class FcpConnection {
 
        /**
         * Returns a limited input stream from the node’s input stream.
-        * 
+        *
         * @param dataLength
         *            The length of the stream
         * @return The limited input stream
@@ -857,7 +869,7 @@ public class FcpConnection {
        /**
         * A wrapper around an {@link InputStream} that only supplies a limit number
         * of bytes from the underlying input stream.
-        * 
+        *
         * @author <a href="mailto:dr@ina-germany.de">David Roden</a>
         * @version $Id$
         */
@@ -869,7 +881,7 @@ public class FcpConnection {
                /**
                 * Creates a new LimitedInputStream that supplies at most
                 * <code>length</code> bytes from the given input stream.
-                * 
+                *
                 * @param inputStream
                 *            The input stream
                 * @param length
@@ -934,7 +946,7 @@ public class FcpConnection {
                /**
                 * {@inheritDoc} This method does nothing, as {@link #mark(int)} and
                 * {@link #reset()} are not supported.
-                * 
+                *
                 * @see java.io.FilterInputStream#mark(int)
                 */
                @Override
@@ -944,7 +956,7 @@ public class FcpConnection {
 
                /**
                 * {@inheritDoc}
-                * 
+                *
                 * @see java.io.FilterInputStream#markSupported()
                 * @return <code>false</code>
                 */
@@ -956,7 +968,7 @@ public class FcpConnection {
                /**
                 * {@inheritDoc} This method does nothing, as {@link #mark(int)} and
                 * {@link #reset()} are not supported.
-                * 
+                *
                 * @see java.io.FilterInputStream#reset()
                 */
                @Override
@@ -967,7 +979,7 @@ public class FcpConnection {
                /**
                 * Consumes the input stream, i.e. read all bytes until the limit is
                 * reached.
-                * 
+                *
                 * @throws IOException
                 *             if an I/O error occurs
                 */