mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-13 19:29:06 +01:00
Moved reliability layer into its own package.
This commit is contained in:
@@ -14,6 +14,7 @@ import net.sf.briar.api.plugins.duplex.DuplexPluginConfig;
|
||||
import net.sf.briar.api.plugins.duplex.DuplexPluginFactory;
|
||||
import net.sf.briar.api.plugins.simplex.SimplexPluginConfig;
|
||||
import net.sf.briar.api.plugins.simplex.SimplexPluginFactory;
|
||||
import net.sf.briar.api.reliability.ReliabilityLayerFactory;
|
||||
import net.sf.briar.plugins.bluetooth.BluetoothPluginFactory;
|
||||
import net.sf.briar.plugins.droidtooth.DroidtoothPluginFactory;
|
||||
import net.sf.briar.plugins.file.RemovableDrivePluginFactory;
|
||||
@@ -62,6 +63,7 @@ public class PluginsModule extends AbstractModule {
|
||||
DuplexPluginConfig getDuplexPluginConfig(
|
||||
@PluginExecutor Executor pluginExecutor,
|
||||
AndroidExecutor androidExecutor, Context appContext,
|
||||
ReliabilityLayerFactory reliabilityFactory,
|
||||
ShutdownManager shutdownManager) {
|
||||
final Collection<DuplexPluginFactory> factories =
|
||||
new ArrayList<DuplexPluginFactory>();
|
||||
@@ -70,7 +72,8 @@ public class PluginsModule extends AbstractModule {
|
||||
androidExecutor, appContext));
|
||||
} else {
|
||||
factories.add(new BluetoothPluginFactory(pluginExecutor));
|
||||
factories.add(new ModemPluginFactory(pluginExecutor));
|
||||
factories.add(new ModemPluginFactory(pluginExecutor,
|
||||
reliabilityFactory));
|
||||
}
|
||||
factories.add(new LanTcpPluginFactory(pluginExecutor));
|
||||
factories.add(new WanTcpPluginFactory(pluginExecutor, shutdownManager));
|
||||
|
||||
@@ -2,6 +2,8 @@ package net.sf.briar.plugins.modem;
|
||||
|
||||
import java.util.concurrent.Executor;
|
||||
|
||||
import net.sf.briar.api.reliability.ReliabilityLayerFactory;
|
||||
|
||||
class ModemFactoryImpl implements ModemFactory {
|
||||
|
||||
private final Executor executor;
|
||||
|
||||
@@ -12,6 +12,10 @@ import java.util.concurrent.Executor;
|
||||
import java.util.concurrent.Semaphore;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import net.sf.briar.api.reliability.ReliabilityLayer;
|
||||
import net.sf.briar.api.reliability.ReliabilityLayerFactory;
|
||||
import net.sf.briar.api.reliability.WriteHandler;
|
||||
|
||||
import jssc.SerialPort;
|
||||
import jssc.SerialPortEvent;
|
||||
import jssc.SerialPortEventListener;
|
||||
|
||||
@@ -7,6 +7,7 @@ import net.sf.briar.api.plugins.duplex.DuplexPlugin;
|
||||
import net.sf.briar.api.plugins.duplex.DuplexPluginCallback;
|
||||
import net.sf.briar.api.plugins.duplex.DuplexPluginFactory;
|
||||
import net.sf.briar.api.protocol.TransportId;
|
||||
import net.sf.briar.api.reliability.ReliabilityLayerFactory;
|
||||
|
||||
import org.h2.util.StringUtils;
|
||||
|
||||
@@ -15,9 +16,12 @@ public class ModemPluginFactory implements DuplexPluginFactory {
|
||||
private static final long POLLING_INTERVAL = 60L * 60L * 1000L; // 1 hour
|
||||
|
||||
private final Executor pluginExecutor;
|
||||
private final ModemFactory modemFactory;
|
||||
|
||||
public ModemPluginFactory(@PluginExecutor Executor pluginExecutor) {
|
||||
public ModemPluginFactory(@PluginExecutor Executor pluginExecutor,
|
||||
ReliabilityLayerFactory reliabilityFactory) {
|
||||
this.pluginExecutor = pluginExecutor;
|
||||
modemFactory = new ModemFactoryImpl(pluginExecutor, reliabilityFactory);
|
||||
}
|
||||
|
||||
public TransportId getId() {
|
||||
@@ -28,10 +32,6 @@ public class ModemPluginFactory implements DuplexPluginFactory {
|
||||
// This plugin is not enabled by default
|
||||
String enabled = callback.getConfig().get("enabled");
|
||||
if(StringUtils.isNullOrEmpty(enabled)) return null;
|
||||
ReliabilityLayerFactory reliabilityFactory =
|
||||
new ReliabilityLayerFactoryImpl(pluginExecutor);
|
||||
ModemFactory modemFactory = new ModemFactoryImpl(pluginExecutor,
|
||||
reliabilityFactory);
|
||||
return new ModemPlugin(pluginExecutor, modemFactory, callback,
|
||||
POLLING_INTERVAL);
|
||||
}
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
package net.sf.briar.plugins.modem;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
interface ReadHandler {
|
||||
|
||||
void handleRead(byte[] b) throws IOException;
|
||||
}
|
||||
@@ -1,15 +0,0 @@
|
||||
package net.sf.briar.plugins.modem;
|
||||
|
||||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
|
||||
interface ReliabilityLayer extends ReadHandler, WriteHandler {
|
||||
|
||||
void start();
|
||||
|
||||
void stop();
|
||||
|
||||
InputStream getInputStream();
|
||||
|
||||
OutputStream getOutputStream();
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
package net.sf.briar.plugins.modem;
|
||||
|
||||
interface ReliabilityLayerFactory {
|
||||
|
||||
ReliabilityLayer createReliabilityLayer(WriteHandler writeHandler);
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
package net.sf.briar.plugins.modem;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
interface WriteHandler {
|
||||
|
||||
void handleWrite(byte[] b) throws IOException;
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package net.sf.briar.plugins.modem;
|
||||
package net.sf.briar.reliability;
|
||||
|
||||
import net.sf.briar.util.ByteUtils;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package net.sf.briar.plugins.modem;
|
||||
package net.sf.briar.reliability;
|
||||
|
||||
class Crc32 {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package net.sf.briar.plugins.modem;
|
||||
package net.sf.briar.reliability;
|
||||
|
||||
class Data extends Frame {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package net.sf.briar.plugins.modem;
|
||||
package net.sf.briar.reliability;
|
||||
|
||||
import net.sf.briar.util.ByteUtils;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package net.sf.briar.plugins.modem;
|
||||
package net.sf.briar.reliability;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Comparator;
|
||||
@@ -6,6 +6,8 @@ import java.util.Iterator;
|
||||
import java.util.SortedSet;
|
||||
import java.util.TreeSet;
|
||||
|
||||
import net.sf.briar.api.reliability.ReadHandler;
|
||||
|
||||
class Receiver implements ReadHandler {
|
||||
|
||||
static final int MAX_WINDOW_SIZE = 8 * Data.MAX_PAYLOAD_LENGTH;
|
||||
@@ -1,4 +1,4 @@
|
||||
package net.sf.briar.plugins.modem;
|
||||
package net.sf.briar.reliability;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
@@ -1,7 +1,11 @@
|
||||
package net.sf.briar.plugins.modem;
|
||||
package net.sf.briar.reliability;
|
||||
|
||||
import java.util.concurrent.Executor;
|
||||
|
||||
import net.sf.briar.api.reliability.ReliabilityLayer;
|
||||
import net.sf.briar.api.reliability.ReliabilityLayerFactory;
|
||||
import net.sf.briar.api.reliability.WriteHandler;
|
||||
|
||||
class ReliabilityLayerFactoryImpl implements ReliabilityLayerFactory {
|
||||
|
||||
private final Executor executor;
|
||||
@@ -1,4 +1,4 @@
|
||||
package net.sf.briar.plugins.modem;
|
||||
package net.sf.briar.reliability;
|
||||
|
||||
import static java.util.concurrent.TimeUnit.MILLISECONDS;
|
||||
import static java.util.logging.Level.WARNING;
|
||||
@@ -11,6 +11,9 @@ import java.util.concurrent.Executor;
|
||||
import java.util.concurrent.LinkedBlockingQueue;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import net.sf.briar.api.reliability.ReliabilityLayer;
|
||||
import net.sf.briar.api.reliability.WriteHandler;
|
||||
|
||||
class ReliabilityLayerImpl implements ReliabilityLayer {
|
||||
|
||||
private static final int TICK_INTERVAL = 500; // Milliseconds
|
||||
@@ -0,0 +1,14 @@
|
||||
package net.sf.briar.reliability;
|
||||
|
||||
import net.sf.briar.api.reliability.ReliabilityLayerFactory;
|
||||
|
||||
import com.google.inject.AbstractModule;
|
||||
|
||||
public class ReliabilityModule extends AbstractModule {
|
||||
|
||||
@Override
|
||||
protected void configure() {
|
||||
bind(ReliabilityLayerFactory.class).to(
|
||||
ReliabilityLayerFactoryImpl.class);
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package net.sf.briar.plugins.modem;
|
||||
package net.sf.briar.reliability;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
@@ -6,6 +6,8 @@ import java.util.Iterator;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
import net.sf.briar.api.reliability.WriteHandler;
|
||||
|
||||
class Sender {
|
||||
|
||||
// All times are in milliseconds
|
||||
@@ -1,4 +1,4 @@
|
||||
package net.sf.briar.plugins.modem;
|
||||
package net.sf.briar.reliability;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.OutputStream;
|
||||
@@ -1,7 +1,9 @@
|
||||
package net.sf.briar.plugins.modem;
|
||||
package net.sf.briar.reliability;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
import net.sf.briar.api.reliability.ReadHandler;
|
||||
|
||||
class SlipDecoder implements ReadHandler {
|
||||
|
||||
// https://tools.ietf.org/html/rfc1055
|
||||
@@ -1,7 +1,9 @@
|
||||
package net.sf.briar.plugins.modem;
|
||||
package net.sf.briar.reliability;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
import net.sf.briar.api.reliability.WriteHandler;
|
||||
|
||||
class SlipEncoder implements WriteHandler {
|
||||
|
||||
// https://tools.ietf.org/html/rfc1055
|
||||
Reference in New Issue
Block a user