* Container for ARKs (address resolution keys).
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public class ARK {
* The “AddPeer” request adds a peer to the node.
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public class AddPeer extends FcpMessage {
* consumed, the payload is discarded!
*
* @author <a href="mailto:dr@ina-germany.de">David Roden</a>
- * @version $Id$
*/
public class AllData extends BaseMessage {
* A basic message abstraction that wraps a received FCP message.
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public class BaseMessage {
* A “ClientGet” request is used for download files from the Freenet node.
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public class ClientGet extends FcpMessage {
* after calling {@link FcpConnection#connect()}.
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public class ClientHello extends FcpMessage {
* disk ({@link UploadFrom#disk}) or by creating a redirect to another URI ({@link UploadFrom#redirect}).
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public class ClientPut extends FcpMessage {
*
* @see FileEntry
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public class ClientPutComplexDir extends FcpMessage {
* the disk to a single key.
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public class ClientPutDiskDir extends FcpMessage {
*
* @see GetConfig
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public class ConfigData extends BaseMessage {
*
* @see DSAParams
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public class DSAGroup {
* actual data, though.
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public class DataFound extends BaseMessage {
* messages.
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public class EndListPeerNotes extends BaseMessage {
* This message marks the end of a list of “Peer” replies.
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public class EndListPeers extends BaseMessage {
* {@link PersistentGet} and {@link PersistentPut} requests.
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
+
*/
public class EndListPersistentRequests extends BaseMessage {
* payload to a plugin.
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public class FCPPluginMessage extends FcpMessage {
* {@link FCPPluginMessage} message.
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public class FCPPluginReply extends BaseMessage {
/**
* Adapter for {@link FcpListener}.
- *
+ *
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public class FcpAdapter implements FcpListener {
/**
* {@inheritDoc}
- *
+ *
* @see FcpListener#receivedNodeData(FcpConnection, NodeData)
*/
public void receivedNodeData(FcpConnection fcpConnection, NodeData nodeData) {
/**
* {@inheritDoc}
- *
+ *
* @see FcpListener#receivedTestDDAReply(FcpConnection, TestDDAReply)
*/
public void receivedTestDDAReply(FcpConnection fcpConnection, TestDDAReply testDDAReply) {
/**
* An FCP connection to a Freenet node.
- *
+ *
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public class FcpConnection implements Closeable {
/**
* 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
*/
/**
* 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
/**
* 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
/**
* 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
*/
/**
* 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
/**
* Adds the given listener to the list of listeners.
- *
+ *
* @param fcpListener
* The listener to add
*/
/**
* Removes the given listener from the list of listeners.
- *
+ *
* @param fcpListener
* The listener to remove
*/
/**
* Notifies listeners that a “NodeHello” message was received.
- *
+ *
* @see FcpListener#receivedNodeHello(FcpConnection, NodeHello)
* @param nodeHello
* The “NodeHello” message
/**
* Notifies listeners that a “CloseConnectionDuplicateClientName” message
* was received.
- *
+ *
* @see FcpListener#receivedCloseConnectionDuplicateClientName(FcpConnection,
* CloseConnectionDuplicateClientName)
* @param closeConnectionDuplicateClientName
/**
* Notifies listeners that a “SSKKeypair” message was received.
- *
+ *
* @see FcpListener#receivedSSKKeypair(FcpConnection, SSKKeypair)
* @param sskKeypair
* The “SSKKeypair” message
/**
* Notifies listeners that a “Peer” message was received.
- *
+ *
* @see FcpListener#receivedPeer(FcpConnection, Peer)
* @param peer
* The “Peer” message
/**
* Notifies all listeners that an “EndListPeers” message was received.
- *
+ *
* @see FcpListener#receivedEndListPeers(FcpConnection, EndListPeers)
* @param endListPeers
* The “EndListPeers” message
/**
* Notifies all listeners that a “PeerNote” message was received.
- *
+ *
* @see FcpListener#receivedPeerNote(FcpConnection, PeerNote)
* @param peerNote
*/
/**
* Notifies all listeners that an “EndListPeerNotes” message was received.
- *
+ *
* @see FcpListener#receivedEndListPeerNotes(FcpConnection,
* EndListPeerNotes)
* @param endListPeerNotes
/**
* Notifies all listeners that a “PeerRemoved” message was received.
- *
+ *
* @see FcpListener#receivedPeerRemoved(FcpConnection, PeerRemoved)
* @param peerRemoved
* The “PeerRemoved” message
/**
* Notifies all listeners that a “NodeData” message was received.
- *
+ *
* @see FcpListener#receivedNodeData(FcpConnection, NodeData)
* @param nodeData
* The “NodeData” message
/**
* Notifies all listeners that a “TestDDAReply” message was received.
- *
+ *
* @see FcpListener#receivedTestDDAReply(FcpConnection, TestDDAReply)
* @param testDDAReply
* The “TestDDAReply” message
/**
* Notifies all listeners that a “TestDDAComplete” message was received.
- *
+ *
* @see FcpListener#receivedTestDDAComplete(FcpConnection, TestDDAComplete)
* @param testDDAComplete
* The “TestDDAComplete” message
/**
* Notifies all listeners that a “PersistentGet” message was received.
- *
+ *
* @see FcpListener#receivedPersistentGet(FcpConnection, PersistentGet)
* @param persistentGet
* The “PersistentGet” message
/**
* Notifies all listeners that a “PersistentPut” message was received.
- *
+ *
* @see FcpListener#receivedPersistentPut(FcpConnection, PersistentPut)
* @param persistentPut
* The “PersistentPut” message
/**
* Notifies all listeners that a “EndListPersistentRequests” message was
* received.
- *
+ *
* @see FcpListener#receivedEndListPersistentRequests(FcpConnection,
* EndListPersistentRequests)
* @param endListPersistentRequests
/**
* Notifies all listeners that a “URIGenerated” message was received.
- *
+ *
* @see FcpListener#receivedURIGenerated(FcpConnection, URIGenerated)
* @param uriGenerated
* The “URIGenerated” message
/**
* Notifies all listeners that a “DataFound” message was received.
- *
+ *
* @see FcpListener#receivedDataFound(FcpConnection, DataFound)
* @param dataFound
* The “DataFound” message
/**
* Notifies all listeners that an “AllData” message was received.
- *
+ *
* @see FcpListener#receivedAllData(FcpConnection, AllData)
* @param allData
* The “AllData” message
/**
* Notifies all listeners that a “SimpleProgress” message was received.
- *
+ *
* @see FcpListener#receivedSimpleProgress(FcpConnection, SimpleProgress)
* @param simpleProgress
* The “SimpleProgress” message
/**
* Notifies all listeners that a “StartedCompression” message was received.
- *
+ *
* @see FcpListener#receivedStartedCompression(FcpConnection,
* StartedCompression)
* @param startedCompression
/**
* Notifies all listeners that a “FinishedCompression” message was received.
- *
+ *
* @see FcpListener#receviedFinishedCompression(FcpConnection,
* FinishedCompression)
* @param finishedCompression
/**
* Notifies all listeners that an “UnknownPeerNoteType” message was
* received.
- *
+ *
* @see FcpListener#receivedUnknownPeerNoteType(FcpConnection,
* UnknownPeerNoteType)
* @param unknownPeerNoteType
/**
* Notifies all listeners that an “UnknownNodeIdentifier” message was
* received.
- *
+ *
* @see FcpListener#receivedUnknownNodeIdentifier(FcpConnection,
* UnknownNodeIdentifier)
* @param unknownNodeIdentifier
/**
* Notifies all listeners that a “ConfigData” message was received.
- *
+ *
* @see FcpListener#receivedConfigData(FcpConnection, ConfigData)
* @param configData
* The “ConfigData” message
/**
* Notifies all listeners that a “GetFailed” message was received.
- *
+ *
* @see FcpListener#receivedGetFailed(FcpConnection, GetFailed)
* @param getFailed
* The “GetFailed” message
/**
* Notifies all listeners that a “PutFailed” message was received.
- *
+ *
* @see FcpListener#receivedPutFailed(FcpConnection, PutFailed)
* @param putFailed
* The “PutFailed” message
/**
* Notifies all listeners that an “IdentifierCollision” message was
* received.
- *
+ *
* @see FcpListener#receivedIdentifierCollision(FcpConnection,
* IdentifierCollision)
* @param identifierCollision
/**
* Notifies all listeners that an “PersistentPutDir” message was received.
- *
+ *
* @see FcpListener#receivedPersistentPutDir(FcpConnection,
* PersistentPutDir)
* @param persistentPutDir
/**
* Notifies all listeners that a “PersistentRequestRemoved” message was
* received.
- *
+ *
* @see FcpListener#receivedPersistentRequestRemoved(FcpConnection,
* PersistentRequestRemoved)
* @param persistentRequestRemoved
/**
* Notifies all listeners that a “SubscribedUSKUpdate” message was received.
- *
+ *
* @see FcpListener#receivedSubscribedUSKUpdate(FcpConnection,
* SubscribedUSKUpdate)
* @param subscribedUSKUpdate
/**
* Notifies all listeners that a “PluginInfo” message was received.
- *
+ *
* @see FcpListener#receivedPluginInfo(FcpConnection, PluginInfo)
* @param pluginInfo
* The “PluginInfo” message
/**
* Notifies all listeners that an “FCPPluginReply” message was received.
- *
+ *
* @see FcpListener#receivedFCPPluginReply(FcpConnection, FCPPluginReply)
* @param fcpPluginReply
* The “FCPPluginReply” message
/**
* Notifies all listeners that a “PersistentRequestModified” message was
* received.
- *
+ *
* @see FcpListener#receivedPersistentRequestModified(FcpConnection,
* PersistentRequestModified)
* @param persistentRequestModified
/**
* Notifies all listeners that a “PutSuccessful” message was received.
- *
+ *
* @see FcpListener#receivedPutSuccessful(FcpConnection, PutSuccessful)
* @param putSuccessful
* The “PutSuccessful” message
/**
* Notifies all listeners that a “PutFetchable” message was received.
- *
+ *
* @see FcpListener#receivedPutFetchable(FcpConnection, PutFetchable)
* @param putFetchable
* The “PutFetchable” message
/**
* Notifies all listeners that a “ProtocolError” message was received.
- *
+ *
* @see FcpListener#receivedProtocolError(FcpConnection, ProtocolError)
* @param protocolError
* The “ProtocolError” message
/**
* Notifies all registered listeners that a message has been received.
- *
+ *
* @see FcpListener#receivedMessage(FcpConnection, FcpMessage)
* @param fcpMessage
* The message that was received
/**
* Notifies all listeners that the connection to the node was closed.
- *
+ *
* @param throwable
* The exception that caused the disconnect, or <code>null</code>
* if there was no exception
/**
* Connects to the node.
- *
+ *
* @throws IOException
* if an I/O error occurs
* @throws IllegalStateException
/**
* Disconnects from the node. If there is no connection to the node, this
* method does nothing.
- *
+ *
* @deprecated Use {@link #close()} instead
*/
@Deprecated
/**
* Sends the given FCP message.
- *
+ *
* @param fcpMessage
* The FCP message to send
* @throws IOException
/**
* Handles the given message, notifying listeners. This message should only
* be called by {@link FcpConnectionHandler}.
- *
+ *
* @param fcpMessage
* The received message
*/
/**
* Handles a disconnect from the node.
- *
+ *
* @param throwable
* The exception that caused the disconnect, or <code>null</code>
* if there was no exception
/**
* Incremets the counter in {@link #incomingMessageStatistics} by <cod>1</code>
* for the given message name.
- *
+ *
* @param name
* The name of the message to count
*/
/**
* Returns a limited input stream from the node’s input stream.
- *
+ *
* @param dataLength
* The length of the stream
* @return The limited input stream
/**
* 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$
*/
private static class LimitedInputStream extends FilterInputStream {
/**
* Creates a new LimitedInputStream that supplies at most
* <code>length</code> bytes from the given input stream.
- *
+ *
* @param inputStream
* The input stream
* @param length
/**
* {@inheritDoc} This method does nothing, as {@link #mark(int)} and
* {@link #reset()} are not supported.
- *
+ *
* @see java.io.FilterInputStream#mark(int)
*/
@Override
/**
* {@inheritDoc}
- *
+ *
* @see java.io.FilterInputStream#markSupported()
* @return <code>false</code>
*/
/**
* {@inheritDoc} This method does nothing, as {@link #mark(int)} and
* {@link #reset()} are not supported.
- *
+ *
* @see java.io.FilterInputStream#reset()
*/
@Override
/**
* Consumes the input stream, i.e. read all bytes until the limit is
* reached.
- *
+ *
* @throws IOException
* if an I/O error occurs
*/
/**
* Handles an FCP connection to a node.
- *
+ *
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
class FcpConnectionHandler implements Runnable {
/**
* Creates a new connection handler that operates on the given connection
* and input stream.
- *
+ *
* @param fcpConnection
* The underlying FCP connection
* @param remoteInputStream
/**
* Reads bytes from {@link #remoteInputStream} until ‘\r’ or ‘\n’ are
* encountered and decodes the read bytes using UTF-8.
- *
+ *
* @return The decoded line
* @throws IOException
* if an I/O error occurs
* Container for an SSK keypair.
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public class FcpKeyPair {
/**
* Interface for objects that want to be notified on certain FCP events.
- *
+ *
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public interface FcpListener extends EventListener {
/**
* Notifies a listener that a “NodeHello” message was received.
- *
+ *
* @param fcpConnection
* The connection that received the message
* @param nodeHello
/**
* Notifies a listener that a “CloseConnectionDuplicateClientName” message
* was received.
- *
+ *
* @param fcpConnection
* The connection that received the message
* @param closeConnectionDuplicateClientName
/**
* Notifies a listener that a “SSKKeypair” message was received.
- *
+ *
* @param fcpConnection
* The connection that received themessage
* @param sskKeypair
/**
* Notifies a listener that a “Peer” message was received.
- *
+ *
* @param fcpConnection
* The connection that received the message
* @param peer
/**
* Notifies a listener that an “EndListPeers” message was received.
- *
+ *
* @param fcpConnection
* The connection that recevied the message
* @param endListPeers
/**
* Notifies a listener that a “PeerNote” message was received.
- *
+ *
* @param fcpConnection
* The connection that received the message
* @param peerNote
/**
* Notifies a listener that an “EndListPeerNotes” message was received.
- *
+ *
* @param fcpConnection
* The connection that received the message
* @param endListPeerNotes
/**
* Notifies a listener that a “PeerRemoved” message was received.
- *
+ *
* @param fcpConnection
* The connection that received the message
* @param peerRemoved
/**
* Notifies a listener that a “NodeData” message was received.
- *
+ *
* @param fcpConnection
* The connection that received the message
* @param nodeData
/**
* Notifies a listener that a “TestDDAReply” message was received.
- *
+ *
* @param fcpConnection
* The connection that received the message
* @param testDDAReply
/**
* Notifies a listener that a “TestDDAComplete” was received.
- *
+ *
* @param fcpConnection
* The connection that received the message
* @param testDDAComplete
/**
* Notifies a listener that a “PersistentGet” was received.
- *
+ *
* @param fcpConnection
* The connection that received the message
* @param persistentGet
/**
* Notifies a listener that a “PersistentPut” was received.
- *
+ *
* @param fcpConnection
* The connection that received the message
* @param persistentPut
/**
* Notifies a listener that a “EndListPersistentRequests” was received.
- *
+ *
* @param fcpConnection
* The connection that received the message
* @param endListPersistentRequests
/**
* Notifies a listener that a “URIGenerated” was received.
- *
+ *
* @param fcpConnection
* The connection that received the message
* @param uriGenerated
/**
* Notifies a listener that a “DataFound” was received.
- *
+ *
* @param fcpConnection
* The connection that received the message
* @param dataFound
/**
* Notifies a listener that an “AllData” was received.
- *
+ *
* @param fcpConnection
* The connection that received the message
* @param allData
/**
* Notifies a listener that a “SimpleProgress” was received.
- *
+ *
* @param fcpConnection
* The connection that received the message
* @param simpleProgress
/**
* Notifies a listener that a “StartedCompression” was received.
- *
+ *
* @param fcpConnection
* The connection that received the message
* @param startedCompression
/**
* Notifies a listener that a “FinishedCompression” was received.
- *
+ *
* @param fcpConnection
* The connection that received the message
* @param finishedCompression
/**
* Notifies a listener that an “UnknownPeerNoteType” was received.
- *
+ *
* @param fcpConnection
* The connection that received the message
* @param unknownPeerNoteType
/**
* Notifies a listener that a “UnknownNodeIdentifier” message was received.
- *
+ *
* @param fcpConnection
* The connection that received the message
* @param unknownNodeIdentifier
/**
* Notifies a listener that a “ConfigData” message was received.
- *
+ *
* @param fcpConnection
* The connection that received the message
* @param configData
/**
* Notifies a listener that a “GetFailed” message was recevied.
- *
+ *
* @param fcpConnection
* The connection that received the message
* @param getFailed
/**
* Notifies a listener that a “PutFailed” message was received.
- *
+ *
* @param fcpConnection
* The connection that received the message
* @param putFailed
/**
* Notifies a listener that an “IdentifierCollision” message was receied.
- *
+ *
* @param fcpConnection
* The connection that received the message
* @param identifierCollision
/**
* Notifies a listener that a “PersistentPutDir” message was received.
- *
+ *
* @param fcpConnection
* The connection that received the message
* @param persistentPutDir
/**
* Notifies a listener that a “PersistentRequestRemoved” message was
* received.
- *
+ *
* @param fcpConnection
* The connection that received the message
* @param persistentRequestRemoved
/**
* Notifies a listener that a “SubscribedUSKUpdate” message was received.
- *
+ *
* @param fcpConnection
* The connection that recevied the message
* @param subscribedUSKUpdate
/**
* Notifies a listener that a “PluginInfo” message was received.
- *
+ *
* @param fcpConnection
* The connection that received the message
* @param pluginInfo
/**
* Notifies a listener that an “FCPPluginReply“ message was received.
- *
+ *
* @param fcpConnection
* The connection that received the message
* @param fcpPluginReply
/**
* Notifies a listener that a “PersistentRequestModified” message was
* received.
- *
+ *
* @param fcpConnection
* The connection that received the message
* @param persistentRequestModified
/**
* Notifies a listener that a “PutSuccessful” message was received.
- *
+ *
* @param fcpConnection
* The connection that received the message
* @param putSuccessful
/**
* Notifies a listener that a “PutFetchable” message was received.
- *
+ *
* @param fcpConnection
* The connection that received the message
* @param putFetchable
/**
* Notifies a listener that a “ProtocolError” was received.
- *
+ *
* @param fcpConnection
* The connection that received the message
* @param protocolError
* Notifies a listener that a message has been received. This method is only
* called if {@link FcpConnection#handleMessage(FcpMessage)} does not
* recognize the message. Should that ever happen, please file a bug report!
- *
+ *
* @param fcpConnection
* The connection that received the message
* @param fcpMessage
* Notifies a listener that a connection was closed. A closed connection can
* be reestablished by calling {@link FcpConnection#connect()} on the same
* object again.
- *
+ *
* @param fcpConnection
* The connection that was closed.
* @param throwable
* An FCP message. FCP messages consist of a name, an arbitrary amount of
* “fields” (i.e. key-value pairs), a message end marker, and optional payload
* data that follows the marker.
- *
+ *
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public class FcpMessage implements Iterable<String> {
/**
* Creates a new FCP message with the given name.
- *
+ *
* @param name
* The name of the FCP message
*/
* Creates a new FCP message with the given name and the given payload input
* stream. The payload input stream is not read until the message is sent to
* the node using {@link FcpConnection#sendMessage(FcpMessage)}.
- *
+ *
* @param name
* The name of the message
* @param payloadInputStream
/**
* Returns the name of the message.
- *
+ *
* @return The name of the message
*/
public String getName() {
/**
* Checks whether this message has a field with the given name.
- *
+ *
* @param field
* The name of the field to check for
* @return <code>true</code> if the message has a field with the given
/**
* Sets the field with the given name to the given value. If the field
* already exists in this message it is overwritten.
- *
+ *
* @param field
* The name of the field
* @param value
/**
* Returns the value of the given field.
- *
+ *
* @param field
* The name of the field
* @return The value of the field, or <code>null</code> if there is no
/**
* Returns all fields of this message.
- *
+ *
* @return All fields of this message
*/
public Map<String, String> getFields() {
/**
* Sets the payload input stream of the message.
- *
+ *
* @param payloadInputStream
* The payload input stream
*/
* the payload is written to the given output stream after the message as
* well. That means that this method can only be called once because on the
* second invocation the payload input stream could not be read (again).
- *
+ *
* @param outputStream
* The output stream to write the message to
* @throws IOException
/**
* Writes the given line (followed by {@link #LINEFEED} to the given output
* stream, using UTF-8 as encoding.
- *
+ *
* @param outputStream
* The output stream to write to
* @param line
/**
* Tests various commands and the FCP connection.
- *
+ *
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public class FcpTest extends TestCase {
/**
* Generates an SSK key pair.
- *
+ *
* @throws IOException
* if an I/O error occurs
* @throws InterruptedException
* Helper class with utility methods for the FCP protocol.
*
* @author <a href="mailto:dr@ina-germany.de">David Roden</a>
- * @version $Id$
*/
public class FcpUtils {
*
* @see ClientPutComplexDir#addFileEntry(FileEntry)
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public abstract class FileEntry {
* {@link ClientPutComplexDir} message.
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
static class DirectFileEntry extends FileEntry {
* A file entry for a file that should be uploaded from the disk.
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
static class DiskFileEntry extends FileEntry {
* A file entry for a file that redirects to another URI.
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
static class RedirectFileEntry extends FileEntry {
* the request data has been finished.
*
* @author David Roden <droden@gmail.com>
- * @version $Id$
*/
public class FinishedCompression extends BaseMessage {
* key pair.
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public class GenerateSSK extends FcpMessage {
* client.
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public class GetConfig extends FcpMessage {
* request will be sent.
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public class GetFailed extends BaseMessage {
* optionally including private and volatile data.
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public class GetNode extends FcpMessage {
* node, which will response with a {@link PluginInfo} message.
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public class GetPluginInfo extends FcpMessage {
* completed {@link ClientGet} with a return type of {@link ReturnType#direct}.
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public class GetRequestStatus extends FcpMessage {
* chosen for a request is already existing.
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public class IdentifierCollision extends BaseMessage {
* The “ListPeer” request asks the node about the details of a given peer.
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public class ListPeer extends FcpMessage {
* entered for a node. Note that notes are only supported for darknet nodes.
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public class ListPeerNotes extends FcpMessage {
* The “ListPeer” requests asks the node for a list of all peers it has.
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public class ListPeers extends FcpMessage {
* on your {@link WatchGlobal} status.
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public class ListPersistentRequests extends FcpMessage {
* The “ModifyConfig” message is used to change the node’s configuration.
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public class ModifyConfig extends FcpMessage {
* The “ModifyPeer” request lets you modify certain properties of a peer.
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public class ModifyPeer extends FcpMessage {
* The “ModifyPeerNote” command modifies a peer note.
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public class ModifyPeerNote extends FcpMessage {
* persistent request while it is running.
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public class ModifyPersistentRequest extends FcpMessage {
* The “NodeData” contains the noderef of the node, along with additional data.
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public class NodeData extends BaseMessage {
* Some convenience methods for parsing a “NodeHello” message from the node.
*
* @author <a href="mailto:dr@ina-germany.de">David Roden</a>
- * @version $Id$
*/
public class NodeHello extends BaseMessage {
* establish a trusted and secure connection to the node.
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public class NodeRef {
* The “Peer” reply by the node contains information about a peer.
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public class Peer extends BaseMessage {
* darknet peer.
*
* @author <a href="mailto:dr@ina-germany.de">David Roden</a>
- * @version $Id$
*/
public class PeerNote extends BaseMessage {
* A “PeerRemoved” message is sent by the node when a peer has been removed.
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public class PeerRemoved extends BaseMessage {
* Convenience class for persistence values.
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public enum Persistence {
* persistent download, either in the client-local queue or in the global queue.
*
* @author <a href="mailto:dr@ina-germany.de">David Roden</a>
- * @version $Id$
*/
public class PersistentGet extends BaseMessage {
* {@link ClientPut} request.
*
* @author <a href="mailto:dr@ina-germany.de">David Roden</a>
- * @version $Id$
*/
public class PersistentPut extends BaseMessage {
* message.
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public class PersistentPutDir extends BaseMessage {
* {@link ModifyPersistentRequest}.
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public class PersistentRequestModified extends BaseMessage {
* removed from either the global or the client-local queue.
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public class PersistentRequestRemoved extends BaseMessage {
* The “PluginInfo” message is a reply to the {@link GetPluginInfo} request.
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public class PluginInfo extends BaseMessage {
* The priority classes used by the Freenet node.
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public enum Priority {
* The “ProtocolError” message signals that something has gone really wrong.
*
* @author <a href="mailto:dr@ina-germany.de">David Roden</a>
- * @version $Id$
*/
public class ProtocolError extends BaseMessage {
* request will be sent.
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public class PutFailed extends BaseMessage {
* fetchable.
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public class PutFetchable extends BaseMessage {
* {@link ClientPut} (or similar) request.
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public class PutSuccessful extends BaseMessage {
* The “RemovePeer” command removes a peer.
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public class RemovePeer extends FcpMessage {
* {@link PutFailed} message), if necessary.
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public class RemovePersistentRequest extends FcpMessage {
* The different return types for {@link ClientGet} requests.
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public enum ReturnType {
* message.
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public class SSKKeypair extends BaseMessage {
* Command that shuts down the node.
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public class Shutdown extends FcpMessage {
* {@link ClientGet} or {@link ClientPut} operation.
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public class SimpleProgress extends BaseMessage {
* request has started.
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public class StartedCompression extends BaseMessage {
* of a USK changes.
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public class SubscribeUSK extends FcpMessage {
* inbetween as welL!
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public class SubscribedUSKUpdate extends BaseMessage {
* your read and write access to a certain directory.
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public class TestDDAComplete extends BaseMessage {
* will give you a filename to write {@link #getContentToWrite()} to.
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public class TestDDAReply extends BaseMessage {
* The “TestDDARequest” initiates a DDA test sequence.
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public class TestDDARequest extends FcpMessage {
* read the content of the file given by {@link TestDDAReply#getReadFilename()}.
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public class TestDDAResponse extends FcpMessage {
* request.
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public class URIGenerated extends BaseMessage {
* identifier given in a command like {@link ListPeer} is unknown.
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public class UnknownNodeIdentifier extends BaseMessage {
* note used in a previous {@link ModifyPeerNote} is unknown.
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public class UnknownPeerNoteType extends BaseMessage {
* {@link ClientPut} and {@link ClientGet} requests.
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public enum UploadFrom {
* new verbosity using {@link #add(Verbosity)}.
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public class Verbosity {
* Container for the “lastGoodVersion” field.
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public class Version {
* addition to the client-local queue.
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public class WatchGlobal extends FcpMessage {
* A result of the {@link HighLevelClient#connect(String)} operation.
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public class ConnectResult extends HighLevelResult {
* The result of a direct disk access check.
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public class DirectDiskAccessResult extends HighLevelResult {
* The result of a download.
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public class DownloadResult extends HighLevelProgress {
* A Get result result is generated by {@link HighLevelClient#getRequests()}.
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public class GetRequestResult extends RequestResult {
* @param <R>
* The type of the high-level operation result
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public class HighLevelCallback<R extends HighLevelResult> {
* @param <R>
* The type of the high-level operation progress
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public interface HighLevelCallbackListener<R extends HighLevelResult> extends EventListener {
* node.
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public class HighLevelClient {
* FCP listener for {@link HighLevelClient}.
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
private class HighLevelClientFcpListener implements FcpListener {
/**
* Interface for objects that want to be notified on certain high-level client
* events.
- *
+ *
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public interface HighLevelClientListener extends EventListener {
/**
* Notifies a listener that the given high-level client was connected to the
* node.
- *
+ *
* @param highLevelClient
* The client that was connected
*/
/**
* Notifies a listener that the given client was disconnected from the node.
- *
+ *
* @param highLevelClient
* The client that was disconnected
* @param throwable
/**
*
*/
+
package net.pterodactylus.fcp.highlevel;
/**
* Base exception for high-level client exceptions.
*
* @author <a href="mailto:dr@ina-germany.de">David Roden</a>
- * @version $Id$
*/
public class HighLevelException extends Exception {
* you do not need to check
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public class HighLevelProgress extends HighLevelResult {
* <P>
* The type of the high-level progress
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public class HighLevelProgressCallback<P extends HighLevelProgress> extends HighLevelCallback<P> {
* Interface for objects that want to observe the progression of requests.
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public interface HighLevelProgressListener extends EventListener {
* Base class for results of {@link HighLevelClient} operations.
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public abstract class HighLevelResult {
* Result of a {@link HighLevelClient#generateKey()} operation.
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public class KeyGenerationResult extends HighLevelResult {
/**
*
*/
+
package net.pterodactylus.fcp.highlevel;
/**
* connection.
*
* @author <a href="mailto:dr@ina-germany.de">David Roden</a>
- * @version $Id$
*/
public class NotConnectedException extends HighLevelException {
* The result of a {@link HighLevelClient#getPeers()} operation.
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public class PeerListResult extends HighLevelResult implements Iterable<Peer> {
* {@link HighLevelClient#addPeer(net.pterodactylus.fcp.NodeRef)}.
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public class PeerResult extends HighLevelResult {
* A PutDir request result is generated by {@link HighLevelClient#getRequests()}.
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public class PutDirRequestResult extends RequestResult {
* A put request result will be contained in a {@link RequestListResult}.
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public class PutRequestResult extends RequestResult {
* The request list results lists all currently running requests on a node.
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public class RequestListResult extends HighLevelResult implements Iterable<RequestResult> {
* {@link HighLevelClient#getRequests()}.
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public class RequestResult extends HighLevelResult {