From 11a6858c46fa7a1f7ae7daf5404e4382093241cd Mon Sep 17 00:00:00 2001 From: akwizgran <akwizgran@users.sourceforge.net> Date: Tue, 4 Oct 2011 17:49:18 +0100 Subject: [PATCH] Updated transport plugin API. --- .../briar/api/transport/TransportCallback.java | 16 ++++++++++++++++ .../transport/batch/BatchTransportCallback.java | 8 ++------ .../transport/batch/BatchTransportWriter.java | 11 ++++++++--- .../stream/StreamTransportCallback.java | 8 ++------ .../batch/TestBatchTransportWriter.java | 4 ++++ 5 files changed, 32 insertions(+), 15 deletions(-) create mode 100644 api/net/sf/briar/api/transport/TransportCallback.java diff --git a/api/net/sf/briar/api/transport/TransportCallback.java b/api/net/sf/briar/api/transport/TransportCallback.java new file mode 100644 index 0000000000..b74e2eabed --- /dev/null +++ b/api/net/sf/briar/api/transport/TransportCallback.java @@ -0,0 +1,16 @@ +package net.sf.briar.api.transport; + +import java.util.Map; + +public interface TransportCallback { + + void setLocalTransports(Map<String, String> transports); + + void setConfig(Map<String, String> config); + + void showMessage(String message); + + boolean showConfirmationMessage(String message); + + int showChoice(String message, String[] choices); +} diff --git a/api/net/sf/briar/api/transport/batch/BatchTransportCallback.java b/api/net/sf/briar/api/transport/batch/BatchTransportCallback.java index 79ef714be1..8ad8b42210 100644 --- a/api/net/sf/briar/api/transport/batch/BatchTransportCallback.java +++ b/api/net/sf/briar/api/transport/batch/BatchTransportCallback.java @@ -1,18 +1,14 @@ package net.sf.briar.api.transport.batch; -import java.util.Map; +import net.sf.briar.api.transport.TransportCallback; /** * An interface for receiving readers and writers created by a batch-mode * transport plugin. */ -public interface BatchTransportCallback { +public interface BatchTransportCallback extends TransportCallback { void readerCreated(BatchTransportReader r); void writerCreated(BatchTransportWriter w); - - void setLocalTransports(Map<String, String> transports); - - void setConfig(Map<String, String> config); } diff --git a/api/net/sf/briar/api/transport/batch/BatchTransportWriter.java b/api/net/sf/briar/api/transport/batch/BatchTransportWriter.java index c485b6b235..4ea8763306 100644 --- a/api/net/sf/briar/api/transport/batch/BatchTransportWriter.java +++ b/api/net/sf/briar/api/transport/batch/BatchTransportWriter.java @@ -16,9 +16,14 @@ public interface BatchTransportWriter { OutputStream getOutputStream(); /** - * Closes the writer and disposes of any associated state. This method must - * be called even if the writer is not used, or if an exception is thrown - * while using the writer. + * Finishes writing to the transport. This method should be called after + * flushing and closing the output stream. + */ + void finish() throws IOException; + + /** + * Disposes of any associated state. This method must be called even if the + * writer is not used, or if an exception is thrown while using the writer. */ void dispose() throws IOException; } diff --git a/api/net/sf/briar/api/transport/stream/StreamTransportCallback.java b/api/net/sf/briar/api/transport/stream/StreamTransportCallback.java index 3a84fc5eb8..d58d0ecbc5 100644 --- a/api/net/sf/briar/api/transport/stream/StreamTransportCallback.java +++ b/api/net/sf/briar/api/transport/stream/StreamTransportCallback.java @@ -1,16 +1,12 @@ package net.sf.briar.api.transport.stream; -import java.util.Map; +import net.sf.briar.api.transport.TransportCallback; /** * An interface for receiving connections created by a stream-mode transport * plugin. */ -public interface StreamTransportCallback { +public interface StreamTransportCallback extends TransportCallback { void connectionCreated(StreamTransportConnection c); - - void setLocalTransports(Map<String, String> transports); - - void setConfig(Map<String, String> config); } diff --git a/test/net/sf/briar/transport/batch/TestBatchTransportWriter.java b/test/net/sf/briar/transport/batch/TestBatchTransportWriter.java index bd2a352086..eb9f78167c 100644 --- a/test/net/sf/briar/transport/batch/TestBatchTransportWriter.java +++ b/test/net/sf/briar/transport/batch/TestBatchTransportWriter.java @@ -23,6 +23,10 @@ class TestBatchTransportWriter implements BatchTransportWriter { return out; } + public void finish() throws IOException { + // Nothing to do + } + public void dispose() throws IOException { // The output stream may have been left open out.close(); -- GitLab