X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fde%2Ftodesbaum%2Futil%2Ffreenet%2Ffcp2%2FClient.java;h=ede92d13e9e890eeda4c781ab69302139f3d890a;hb=953de352675a4ad91fe307d816a4ea7780c94274;hp=bf024440c632d2169baacf16a7dcc97acac9e430;hpb=e4f461213da0e30faf9e9eb2e97626abff320618;p=jSite.git diff --git a/src/de/todesbaum/util/freenet/fcp2/Client.java b/src/de/todesbaum/util/freenet/fcp2/Client.java index bf02444..ede92d1 100644 --- a/src/de/todesbaum/util/freenet/fcp2/Client.java +++ b/src/de/todesbaum/util/freenet/fcp2/Client.java @@ -1,6 +1,5 @@ /* - * todesbaum-lib - - * Copyright (C) 2006 David Roden + * jSite - Client.java - Copyright © 2006–2012 David Roden * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -23,10 +22,12 @@ import java.io.IOException; import java.util.ArrayList; import java.util.List; +import de.todesbaum.util.io.StreamCopier.ProgressListener; + /** * A Client executes {@link Command}s over a {@link Connection} to a * {@link Node} and delivers resulting {@link Message}s. - * + * * @author David Roden <droden@gmail.com> * @version $Id$ */ @@ -49,7 +50,7 @@ public class Client implements ConnectionListener { /** * Creates a new client that operates on the specified connection. - * + * * @param connection * The connection to operate on */ @@ -61,7 +62,7 @@ public class Client implements ConnectionListener { /** * Creates a new client that operates on the specified connection and * immediately executes the specified command. - * + * * @param connection * The connection to operate on * @param command @@ -78,7 +79,7 @@ public class Client implements ConnectionListener { /** * Returns whether this client catches all messages going over the * connection. - * + * * @return true if the client catches all messages, * false otherwise */ @@ -88,7 +89,7 @@ public class Client implements ConnectionListener { /** * Sets whether this client catches all messages going over the connection. - * + * * @param catchAll * true if the client should catch all messages, * false otherwise @@ -101,7 +102,7 @@ public class Client implements ConnectionListener { * Executes the specified command. This will also clear the queue of * messages, discarding all messages that resulted from the previous command * and have not yet been read. - * + * * @param command * The command to execute * @throws IOException @@ -113,9 +114,26 @@ public class Client implements ConnectionListener { } /** + * Executes the specified command. This will also clear the queue of + * messages, discarding all messages that resulted from the previous + * command and have not yet been read. + * + * @param command + * The command to execute + * @param progressListener + * The progress listener for payload transfers + * @throws IOException + * if an I/O error occurs + * @see #execute(Command, boolean) + */ + public void execute(Command command, ProgressListener progressListener) throws IOException { + execute(command, true, progressListener); + } + + /** * Executes the specified command and optionally clears the list of * identifiers this clients listens to before starting the command. - * + * * @param command * The command to execute * @param removeExistingIdentifiers @@ -125,6 +143,24 @@ public class Client implements ConnectionListener { * if an I/O error occurs */ public void execute(Command command, boolean removeExistingIdentifiers) throws IOException { + execute(command, removeExistingIdentifiers, null); + } + + /** + * Executes the specified command and optionally clears the list of + * identifiers this clients listens to before starting the command. + * + * @param command + * The command to execute + * @param removeExistingIdentifiers + * If true, the list of identifiers that this + * clients listens to is cleared + * @param progressListener + * The progress listener for payload transfers + * @throws IOException + * if an I/O error occurs + */ + public void execute(Command command, boolean removeExistingIdentifiers, ProgressListener progressListener) throws IOException { synchronized (messageQueue) { messageQueue.clear(); if (removeExistingIdentifiers) { @@ -132,14 +168,14 @@ public class Client implements ConnectionListener { } identifiers.add(command.getIdentifier()); } - connection.execute(command); + connection.execute(command, progressListener); } /** * Returns the next message, waiting endlessly for it, if need be. If you * are not sure whether a message will arrive, better use * {@link #readMessage(long)} to only wait for a specific time. - * + * * @return The next message that resulted from the execution of the last * command * @see #readMessage(long) @@ -153,7 +189,7 @@ public class Client implements ConnectionListener { * Returns the next message. If the message queue is currently empty, at * least maxWaitTime milliseconds will be waited for a * message to arrive. - * + * * @param maxWaitTime * The minimum time to wait for a message, in milliseconds * @return The message, or null if no message arrived in time @@ -181,7 +217,7 @@ public class Client implements ConnectionListener { /** * Returns whether the client is currently disconnected. - * + * * @return true if the client is disconnected, * false otherwise */