Skip to content
Snippets Groups Projects
Commit 7f1b01be authored by akwizgran's avatar akwizgran
Browse files

Skeleton of modem plugin.

parent e5f7ab7a
No related branches found
No related tags found
No related merge requests found
......@@ -52,7 +52,8 @@ class PluginManagerImpl implements PluginManager {
private static final String[] ANDROID_DUPLEX_FACTORIES = new String[] {
"net.sf.briar.plugins.droidtooth.DroidtoothPluginFactory",
"net.sf.briar.plugins.tcp.LanTcpPluginFactory",
"net.sf.briar.plugins.tcp.WanTcpPluginFactory"
"net.sf.briar.plugins.tcp.WanTcpPluginFactory",
"net.sf.briar.plugins.tor.TorPluginFactory"
};
private static final String[] J2SE_SIMPLEX_FACTORIES = new String[] {
......@@ -61,6 +62,7 @@ class PluginManagerImpl implements PluginManager {
private static final String[] J2SE_DUPLEX_FACTORIES = new String[] {
"net.sf.briar.plugins.bluetooth.BluetoothPluginFactory",
"net.sf.briar.plugins.modem.ModemPluginFactory",
"net.sf.briar.plugins.tcp.LanTcpPluginFactory",
"net.sf.briar.plugins.tcp.WanTcpPluginFactory",
"net.sf.briar.plugins.tor.TorPluginFactory"
......
package net.sf.briar.plugins.modem;
import java.io.IOException;
import java.util.Collection;
import java.util.concurrent.Executor;
import java.util.logging.Logger;
import net.sf.briar.api.ContactId;
import net.sf.briar.api.crypto.PseudoRandom;
import net.sf.briar.api.plugins.PluginCallback;
import net.sf.briar.api.plugins.PluginExecutor;
import net.sf.briar.api.plugins.duplex.DuplexPlugin;
import net.sf.briar.api.plugins.duplex.DuplexTransportConnection;
import net.sf.briar.api.protocol.TransportId;
import net.sf.briar.util.StringUtils;
class ModemPlugin implements DuplexPlugin {
private static final byte[] TRANSPORT_ID =
StringUtils.fromHexString("8f573867bedf54884b5868ee5d902832" +
"ee5e522da84d0d431712bd672fbd2f79" +
"262d27b93879b94ee9afbb80e7fc87fb");
private static final TransportId ID = new TransportId(TRANSPORT_ID);
private static final Logger LOG =
Logger.getLogger(ModemPlugin.class.getName());
private final Executor pluginExecutor;
private final PluginCallback callback;
private final long pollingInterval;
ModemPlugin(@PluginExecutor Executor pluginExecutor,
PluginCallback callback, long pollingInterval) {
this.pluginExecutor = pluginExecutor;
this.callback = callback;
this.pollingInterval = pollingInterval;
}
public TransportId getId() {
return ID;
}
public String getName() {
return "MODEM_PLUGIN_NAME";
}
public void start() throws IOException {
// FIXME
}
public void stop() throws IOException {
// FIXME
}
public boolean shouldPoll() {
return true;
}
public long getPollingInterval() {
return pollingInterval;
}
public void poll(Collection<ContactId> connected) {
// FIXME
}
public DuplexTransportConnection createConnection(ContactId c) {
// FIXME
return null;
}
public boolean supportsInvitations() {
return false;
}
public DuplexTransportConnection sendInvitation(PseudoRandom r,
long timeout) {
throw new UnsupportedOperationException();
}
public DuplexTransportConnection acceptInvitation(PseudoRandom r,
long timeout) {
throw new UnsupportedOperationException();
}
}
package net.sf.briar.plugins.modem;
import java.util.concurrent.Executor;
import org.h2.util.StringUtils;
import net.sf.briar.api.android.AndroidExecutor;
import net.sf.briar.api.lifecycle.ShutdownManager;
import net.sf.briar.api.plugins.PluginExecutor;
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 android.content.Context;
public class ModemPluginFactory implements DuplexPluginFactory {
private static final long POLLING_INTERVAL = 60L * 60L * 1000L; // 1 hour
public DuplexPlugin createPlugin(@PluginExecutor Executor pluginExecutor,
AndroidExecutor androidExecutor, Context appContext,
ShutdownManager shutdownManager, DuplexPluginCallback callback) {
// This plugin is not enabled by default
String enabled = callback.getConfig().get("enabled");
if(StringUtils.isNullOrEmpty(enabled)) return null;
return new ModemPlugin(pluginExecutor, callback, POLLING_INTERVAL);
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment