mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-14 19:59:05 +01:00
Replaced InvitationManager with a generic ReferenceManager for Android.
This commit is contained in:
@@ -14,7 +14,6 @@ import java.util.logging.Logger;
|
||||
import net.sf.briar.api.clock.Clock;
|
||||
import net.sf.briar.api.crypto.CryptoComponent;
|
||||
import net.sf.briar.api.invitation.InvitationListener;
|
||||
import net.sf.briar.api.invitation.InvitationManager;
|
||||
import net.sf.briar.api.invitation.InvitationState;
|
||||
import net.sf.briar.api.invitation.InvitationTask;
|
||||
import net.sf.briar.api.plugins.PluginManager;
|
||||
@@ -28,13 +27,12 @@ class ConnectorGroup extends Thread implements InvitationTask {
|
||||
private static final Logger LOG =
|
||||
Logger.getLogger(ConnectorGroup.class.getName());
|
||||
|
||||
private final InvitationManager invitationManager;
|
||||
private final CryptoComponent crypto;
|
||||
private final ReaderFactory readerFactory;
|
||||
private final WriterFactory writerFactory;
|
||||
private final Clock clock;
|
||||
private final PluginManager pluginManager;
|
||||
private final int handle, localInvitationCode, remoteInvitationCode;
|
||||
private final int localInvitationCode, remoteInvitationCode;
|
||||
private final Collection<InvitationListener> listeners;
|
||||
private final AtomicBoolean connected;
|
||||
private final CountDownLatch localConfirmationLatch;
|
||||
@@ -50,18 +48,16 @@ class ConnectorGroup extends Thread implements InvitationTask {
|
||||
private boolean localCompared = false, remoteCompared = false;
|
||||
private boolean localMatched = false, remoteMatched = false;
|
||||
|
||||
ConnectorGroup(InvitationManager invitationManager, CryptoComponent crypto,
|
||||
ReaderFactory readerFactory, WriterFactory writerFactory,
|
||||
Clock clock, PluginManager pluginManager, int handle,
|
||||
int localInvitationCode, int remoteInvitationCode) {
|
||||
ConnectorGroup(CryptoComponent crypto, ReaderFactory readerFactory,
|
||||
WriterFactory writerFactory, Clock clock,
|
||||
PluginManager pluginManager, int localInvitationCode,
|
||||
int remoteInvitationCode) {
|
||||
super("ConnectorGroup");
|
||||
this.invitationManager = invitationManager;
|
||||
this.crypto = crypto;
|
||||
this.readerFactory = readerFactory;
|
||||
this.writerFactory = writerFactory;
|
||||
this.clock = clock;
|
||||
this.pluginManager = pluginManager;
|
||||
this.handle = handle;
|
||||
this.localInvitationCode = localInvitationCode;
|
||||
this.remoteInvitationCode = remoteInvitationCode;
|
||||
listeners = new CopyOnWriteArrayList<InvitationListener>();
|
||||
@@ -69,10 +65,6 @@ class ConnectorGroup extends Thread implements InvitationTask {
|
||||
localConfirmationLatch = new CountDownLatch(1);
|
||||
}
|
||||
|
||||
public int getHandle() {
|
||||
return handle;
|
||||
}
|
||||
|
||||
public synchronized InvitationState addListener(InvitationListener l) {
|
||||
listeners.add(l);
|
||||
return new InvitationState(localInvitationCode, remoteInvitationCode,
|
||||
@@ -90,8 +82,6 @@ class ConnectorGroup extends Thread implements InvitationTask {
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
// Add this task to the manager
|
||||
invitationManager.putTask(handle, this);
|
||||
// Start the connection threads
|
||||
final Collection<Connector> connectors = new ArrayList<Connector>();
|
||||
// Alice is the party with the smaller invitation code
|
||||
@@ -126,8 +116,6 @@ class ConnectorGroup extends Thread implements InvitationTask {
|
||||
}
|
||||
for(InvitationListener l : listeners) l.connectionFailed();
|
||||
}
|
||||
// Remove this task from the manager
|
||||
invitationManager.removeTask(handle);
|
||||
}
|
||||
|
||||
public void localConfirmationSucceeded() {
|
||||
|
||||
@@ -1,58 +0,0 @@
|
||||
package net.sf.briar.invitation;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
|
||||
import net.sf.briar.api.clock.Clock;
|
||||
import net.sf.briar.api.crypto.CryptoComponent;
|
||||
import net.sf.briar.api.invitation.InvitationManager;
|
||||
import net.sf.briar.api.invitation.InvitationTask;
|
||||
import net.sf.briar.api.plugins.PluginManager;
|
||||
import net.sf.briar.api.serial.ReaderFactory;
|
||||
import net.sf.briar.api.serial.WriterFactory;
|
||||
|
||||
import com.google.inject.Inject;
|
||||
|
||||
class InvitationManagerImpl implements InvitationManager {
|
||||
|
||||
private final CryptoComponent crypto;
|
||||
private final ReaderFactory readerFactory;
|
||||
private final WriterFactory writerFactory;
|
||||
private final Clock clock;
|
||||
private final PluginManager pluginManager;
|
||||
|
||||
private final AtomicInteger nextHandle;
|
||||
private final Map<Integer, InvitationTask> tasks;
|
||||
|
||||
@Inject
|
||||
InvitationManagerImpl(CryptoComponent crypto, ReaderFactory readerFactory,
|
||||
WriterFactory writerFactory, Clock clock,
|
||||
PluginManager pluginManager) {
|
||||
this.crypto = crypto;
|
||||
this.readerFactory = readerFactory;
|
||||
this.writerFactory = writerFactory;
|
||||
this.clock = clock;
|
||||
this.pluginManager = pluginManager;
|
||||
nextHandle = new AtomicInteger(0);
|
||||
tasks = new ConcurrentHashMap<Integer, InvitationTask>();
|
||||
}
|
||||
|
||||
public InvitationTask createTask(int localCode, int remoteCode) {
|
||||
int handle = nextHandle.incrementAndGet();
|
||||
return new ConnectorGroup(this, crypto, readerFactory, writerFactory,
|
||||
clock, pluginManager, handle, localCode, remoteCode);
|
||||
}
|
||||
|
||||
public InvitationTask getTask(int handle) {
|
||||
return tasks.get(handle);
|
||||
}
|
||||
|
||||
public void putTask(int handle, InvitationTask task) {
|
||||
tasks.put(handle, task);
|
||||
}
|
||||
|
||||
public void removeTask(int handle) {
|
||||
tasks.remove(handle);
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
package net.sf.briar.invitation;
|
||||
|
||||
import net.sf.briar.api.invitation.InvitationManager;
|
||||
import net.sf.briar.api.invitation.InvitationTaskFactory;
|
||||
|
||||
import com.google.inject.AbstractModule;
|
||||
import com.google.inject.Singleton;
|
||||
@@ -9,7 +9,7 @@ public class InvitationModule extends AbstractModule {
|
||||
|
||||
@Override
|
||||
protected void configure() {
|
||||
bind(InvitationManager.class).to(InvitationManagerImpl.class).in(
|
||||
bind(InvitationTaskFactory.class).to(InvitationTaskFactoryImpl.class).in(
|
||||
Singleton.class);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
package net.sf.briar.invitation;
|
||||
|
||||
import net.sf.briar.api.clock.Clock;
|
||||
import net.sf.briar.api.crypto.CryptoComponent;
|
||||
import net.sf.briar.api.invitation.InvitationTask;
|
||||
import net.sf.briar.api.invitation.InvitationTaskFactory;
|
||||
import net.sf.briar.api.plugins.PluginManager;
|
||||
import net.sf.briar.api.serial.ReaderFactory;
|
||||
import net.sf.briar.api.serial.WriterFactory;
|
||||
|
||||
import com.google.inject.Inject;
|
||||
|
||||
class InvitationTaskFactoryImpl implements InvitationTaskFactory {
|
||||
|
||||
private final CryptoComponent crypto;
|
||||
private final ReaderFactory readerFactory;
|
||||
private final WriterFactory writerFactory;
|
||||
private final Clock clock;
|
||||
private final PluginManager pluginManager;
|
||||
|
||||
@Inject
|
||||
InvitationTaskFactoryImpl(CryptoComponent crypto,
|
||||
ReaderFactory readerFactory, WriterFactory writerFactory,
|
||||
Clock clock, PluginManager pluginManager) {
|
||||
this.crypto = crypto;
|
||||
this.readerFactory = readerFactory;
|
||||
this.writerFactory = writerFactory;
|
||||
this.clock = clock;
|
||||
this.pluginManager = pluginManager;
|
||||
}
|
||||
|
||||
public InvitationTask createTask(int localCode, int remoteCode) {
|
||||
return new ConnectorGroup(crypto, readerFactory, writerFactory, clock,
|
||||
pluginManager, localCode, remoteCode);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user