From aabe72bfd7eb0d8aa1cb7aa59a4a91a5167f8adf Mon Sep 17 00:00:00 2001 From: akwizgran <akwizgran@users.sourceforge.net> Date: Wed, 12 Oct 2011 17:26:05 +0100 Subject: [PATCH] Plugin factories. --- .../briar/api/plugins/BatchPluginFactory.java | 9 +++++ .../api/plugins/StreamPluginFactory.java | 9 +++++ .../bluetooth/BluetoothPluginFactory.java | 17 ++++++++++ .../file/RemovableDrivePluginFactory.java | 33 +++++++++++++++++++ .../socket/SimpleSocketPluginFactory.java | 17 ++++++++++ 5 files changed, 85 insertions(+) create mode 100644 api/net/sf/briar/api/plugins/BatchPluginFactory.java create mode 100644 api/net/sf/briar/api/plugins/StreamPluginFactory.java create mode 100644 components/net/sf/briar/plugins/bluetooth/BluetoothPluginFactory.java create mode 100644 components/net/sf/briar/plugins/file/RemovableDrivePluginFactory.java create mode 100644 components/net/sf/briar/plugins/socket/SimpleSocketPluginFactory.java diff --git a/api/net/sf/briar/api/plugins/BatchPluginFactory.java b/api/net/sf/briar/api/plugins/BatchPluginFactory.java new file mode 100644 index 0000000000..e8c665b216 --- /dev/null +++ b/api/net/sf/briar/api/plugins/BatchPluginFactory.java @@ -0,0 +1,9 @@ +package net.sf.briar.api.plugins; + +import java.util.concurrent.Executor; + +public interface BatchPluginFactory { + + BatchPlugin createPlugin(Executor executor, + BatchPluginCallback callback); +} diff --git a/api/net/sf/briar/api/plugins/StreamPluginFactory.java b/api/net/sf/briar/api/plugins/StreamPluginFactory.java new file mode 100644 index 0000000000..97246ffc5e --- /dev/null +++ b/api/net/sf/briar/api/plugins/StreamPluginFactory.java @@ -0,0 +1,9 @@ +package net.sf.briar.api.plugins; + +import java.util.concurrent.Executor; + +public interface StreamPluginFactory { + + StreamPlugin createPlugin(Executor executor, + StreamPluginCallback callback); +} diff --git a/components/net/sf/briar/plugins/bluetooth/BluetoothPluginFactory.java b/components/net/sf/briar/plugins/bluetooth/BluetoothPluginFactory.java new file mode 100644 index 0000000000..ed9dfa8657 --- /dev/null +++ b/components/net/sf/briar/plugins/bluetooth/BluetoothPluginFactory.java @@ -0,0 +1,17 @@ +package net.sf.briar.plugins.bluetooth; + +import java.util.concurrent.Executor; + +import net.sf.briar.api.plugins.StreamPluginCallback; +import net.sf.briar.api.plugins.StreamPlugin; +import net.sf.briar.api.plugins.StreamPluginFactory; + +public class BluetoothPluginFactory implements StreamPluginFactory { + + private static final long POLLING_INTERVAL = 3L * 60L * 1000L; // 3 mins + + public StreamPlugin createPlugin(Executor executor, + StreamPluginCallback callback) { + return new BluetoothPlugin(executor, callback, POLLING_INTERVAL); + } +} diff --git a/components/net/sf/briar/plugins/file/RemovableDrivePluginFactory.java b/components/net/sf/briar/plugins/file/RemovableDrivePluginFactory.java new file mode 100644 index 0000000000..f42d322c77 --- /dev/null +++ b/components/net/sf/briar/plugins/file/RemovableDrivePluginFactory.java @@ -0,0 +1,33 @@ +package net.sf.briar.plugins.file; + +import java.util.concurrent.Executor; + +import net.sf.briar.api.plugins.BatchPluginCallback; +import net.sf.briar.api.plugins.BatchPlugin; +import net.sf.briar.api.plugins.BatchPluginFactory; +import net.sf.briar.util.OsUtils; + +public class RemovableDrivePluginFactory implements BatchPluginFactory { + + private static final long POLLING_INTERVAL = 10L * 1000L; // 10 seconds + + public BatchPlugin createPlugin(Executor executor, + BatchPluginCallback callback) { + RemovableDriveFinder finder; + RemovableDriveMonitor monitor; + if(OsUtils.isLinux()) { + finder = new LinuxRemovableDriveFinder(); + monitor = new LinuxRemovableDriveMonitor(); + } else if(OsUtils.isMac()) { + finder = new MacRemovableDriveFinder(); + monitor = new MacRemovableDriveMonitor(); + } else if(OsUtils.isWindows()) { + finder = new WindowsRemovableDriveFinder(); + monitor = new PollingRemovableDriveMonitor(finder, + POLLING_INTERVAL); + } else { + return null; + } + return new RemovableDrivePlugin(executor, callback, finder, monitor); + } +} diff --git a/components/net/sf/briar/plugins/socket/SimpleSocketPluginFactory.java b/components/net/sf/briar/plugins/socket/SimpleSocketPluginFactory.java new file mode 100644 index 0000000000..c96de3c196 --- /dev/null +++ b/components/net/sf/briar/plugins/socket/SimpleSocketPluginFactory.java @@ -0,0 +1,17 @@ +package net.sf.briar.plugins.socket; + +import java.util.concurrent.Executor; + +import net.sf.briar.api.plugins.StreamPluginCallback; +import net.sf.briar.api.plugins.StreamPlugin; +import net.sf.briar.api.plugins.StreamPluginFactory; + +public class SimpleSocketPluginFactory implements StreamPluginFactory { + + private static final long POLLING_INTERVAL = 5L * 60L * 1000L; // 5 mins + + public StreamPlugin createPlugin(Executor executor, + StreamPluginCallback callback) { + return new SimpleSocketPlugin(executor, callback, POLLING_INTERVAL); + } +} -- GitLab