mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-12 02:39:05 +01:00
Removed methods that are no longer needed for Java 6, moved the remaining method into the utils directory.
52 lines
1.7 KiB
Java
52 lines
1.7 KiB
Java
package org.briarproject.plugins.file;
|
|
|
|
import org.briarproject.api.TransportId;
|
|
import org.briarproject.api.plugins.simplex.SimplexPlugin;
|
|
import org.briarproject.api.plugins.simplex.SimplexPluginCallback;
|
|
import org.briarproject.api.plugins.simplex.SimplexPluginFactory;
|
|
import org.briarproject.util.OsUtils;
|
|
|
|
import java.util.concurrent.Executor;
|
|
|
|
public class RemovableDrivePluginFactory implements SimplexPluginFactory {
|
|
|
|
// Maximum latency 14 days (Royal Mail or lackadaisical carrier pigeon)
|
|
private static final int MAX_LATENCY = 14 * 24 * 60 * 60 * 1000;
|
|
private static final int POLLING_INTERVAL = 10 * 1000; // 10 seconds
|
|
|
|
private final Executor ioExecutor;
|
|
|
|
public RemovableDrivePluginFactory(Executor ioExecutor) {
|
|
this.ioExecutor = ioExecutor;
|
|
}
|
|
|
|
public TransportId getId() {
|
|
return RemovableDrivePlugin.ID;
|
|
}
|
|
|
|
public SimplexPlugin createPlugin(SimplexPluginCallback callback) {
|
|
RemovableDriveFinder finder;
|
|
RemovableDriveMonitor monitor;
|
|
if (OsUtils.isLinux()) {
|
|
finder = new LinuxRemovableDriveFinder();
|
|
monitor = new LinuxRemovableDriveMonitor();
|
|
} else if (OsUtils.isMacLeopardOrNewer()) {
|
|
finder = new MacRemovableDriveFinder();
|
|
monitor = new MacRemovableDriveMonitor();
|
|
} else if (OsUtils.isMac()) {
|
|
// JNotify requires OS X 10.5 or newer, so we have to poll
|
|
finder = new MacRemovableDriveFinder();
|
|
monitor = new PollingRemovableDriveMonitor(ioExecutor, finder,
|
|
POLLING_INTERVAL);
|
|
} else if (OsUtils.isWindows()) {
|
|
finder = new WindowsRemovableDriveFinder();
|
|
monitor = new PollingRemovableDriveMonitor(ioExecutor, finder,
|
|
POLLING_INTERVAL);
|
|
} else {
|
|
return null;
|
|
}
|
|
return new RemovableDrivePlugin(ioExecutor, callback, finder, monitor,
|
|
MAX_LATENCY);
|
|
}
|
|
}
|