mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-14 03:39:05 +01:00
38 lines
1.3 KiB
Java
38 lines
1.3 KiB
Java
package org.briarproject.plugins.modem;
|
|
|
|
import java.util.concurrent.Executor;
|
|
|
|
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;
|
|
|
|
public class ModemPluginFactory implements DuplexPluginFactory {
|
|
|
|
private static final int MAX_FRAME_LENGTH = 1024;
|
|
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 DuplexPlugin createPlugin(DuplexPluginCallback callback) {
|
|
// This plugin is not enabled by default
|
|
String enabled = callback.getConfig().get("enabled");
|
|
if(StringUtils.isNullOrEmpty(enabled)) return null;
|
|
return new ModemPlugin(modemFactory, serialPortList, callback,
|
|
MAX_FRAME_LENGTH, MAX_LATENCY);
|
|
}
|
|
}
|