mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-15 20:29:52 +01:00
41 lines
1.3 KiB
Java
41 lines
1.3 KiB
Java
package org.briarproject.plugins.modem;
|
|
|
|
import org.briarproject.api.TransportId;
|
|
import org.briarproject.api.plugins.duplex.DuplexPlugin;
|
|
import org.briarproject.api.plugins.duplex.DuplexPluginCallback;
|
|
import org.briarproject.api.plugins.duplex.DuplexPluginFactory;
|
|
import org.briarproject.api.reliability.ReliabilityLayerFactory;
|
|
import org.briarproject.util.StringUtils;
|
|
|
|
import java.util.concurrent.Executor;
|
|
|
|
public class ModemPluginFactory implements DuplexPluginFactory {
|
|
|
|
private static final int MAX_LATENCY = 30 * 1000; // 30 seconds
|
|
|
|
private final ModemFactory modemFactory;
|
|
private final SerialPortList serialPortList;
|
|
|
|
public ModemPluginFactory(Executor ioExecutor,
|
|
ReliabilityLayerFactory reliabilityFactory) {
|
|
modemFactory = new ModemFactoryImpl(ioExecutor, reliabilityFactory);
|
|
serialPortList = new SerialPortListImpl();
|
|
}
|
|
|
|
public TransportId getId() {
|
|
return ModemPlugin.ID;
|
|
}
|
|
|
|
public int getMaxLatency() {
|
|
return MAX_LATENCY;
|
|
}
|
|
|
|
public DuplexPlugin createPlugin(DuplexPluginCallback callback) {
|
|
// This plugin is not enabled by default
|
|
String enabled = callback.getSettings().get("enabled");
|
|
if (StringUtils.isNullOrEmpty(enabled)) return null;
|
|
return new ModemPlugin(modemFactory, serialPortList, callback,
|
|
MAX_LATENCY);
|
|
}
|
|
}
|