Add modifyPeerNote().
authorDavid ‘Bombe’ Roden <bombe@freenetproject.org>
Thu, 19 Mar 2009 22:34:37 +0000 (23:34 +0100)
committerDavid ‘Bombe’ Roden <bombe@freenetproject.org>
Thu, 19 Mar 2009 22:34:37 +0000 (23:34 +0100)
src/net/pterodactylus/fcp/highlevel/FcpClient.java

index 71b118e..d33105c 100644 (file)
@@ -39,6 +39,7 @@ import net.pterodactylus.fcp.FcpListener;
 import net.pterodactylus.fcp.ListPeerNotes;
 import net.pterodactylus.fcp.ListPeers;
 import net.pterodactylus.fcp.ModifyPeer;
+import net.pterodactylus.fcp.ModifyPeerNote;
 import net.pterodactylus.fcp.NodeHello;
 import net.pterodactylus.fcp.NodeRef;
 import net.pterodactylus.fcp.Peer;
@@ -454,6 +455,45 @@ public class FcpClient {
        }
 
        /**
+        * Replaces the peer note for the given peer.
+        *
+        * @param peer
+        *            The peer
+        * @param noteText
+        *            The new base64-encoded note text
+        * @param noteType
+        *            The type of the note (currently only <code>1</code> is
+        *            allowed)
+        * @throws IOException
+        *             if an I/O error occurs
+        * @throws FcpException
+        *             if an FCP error occurs
+        */
+       public void modifyPeerNote(final Peer peer, final String noteText, final int noteType) throws IOException, FcpException {
+               new ExtendedFcpAdapter() {
+
+                       /**
+                        * {@inheritDoc}
+                        */
+                       @Override
+                       @SuppressWarnings("synthetic-access")
+                       public void run() throws IOException {
+                               fcpConnection.sendMessage(new ModifyPeerNote(peer.getIdentity(), noteText, noteType));
+                       }
+
+                       /**
+                        * {@inheritDoc}
+                        */
+                       @Override
+                       public void receivedPeer(FcpConnection fcpConnection, Peer receivedPeer) {
+                               if (receivedPeer.getIdentity().equals(peer.getIdentity())) {
+                                       completionLatch.countDown();
+                               }
+                       }
+               }.execute();
+       }
+
+       /**
         * Implementation of an {@link FcpListener} that can store an
         * {@link FcpException} and wait for the arrival of a certain command.
         *