mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-17 13:19:52 +01:00
Add MailboxClientFactory.
This commit is contained in:
@@ -6,6 +6,7 @@ import org.briarproject.bramble.api.system.Clock;
|
|||||||
import org.briarproject.bramble.mailbox.MailboxApi.ApiException;
|
import org.briarproject.bramble.mailbox.MailboxApi.ApiException;
|
||||||
|
|
||||||
import javax.annotation.concurrent.ThreadSafe;
|
import javax.annotation.concurrent.ThreadSafe;
|
||||||
|
import javax.inject.Inject;
|
||||||
|
|
||||||
@ThreadSafe
|
@ThreadSafe
|
||||||
@NotNullByDefault
|
@NotNullByDefault
|
||||||
@@ -13,6 +14,7 @@ class ContactMailboxConnectivityChecker extends ConnectivityCheckerImpl {
|
|||||||
|
|
||||||
private final MailboxApi mailboxApi;
|
private final MailboxApi mailboxApi;
|
||||||
|
|
||||||
|
@Inject
|
||||||
ContactMailboxConnectivityChecker(Clock clock,
|
ContactMailboxConnectivityChecker(Clock clock,
|
||||||
MailboxApiCaller mailboxApiCaller, MailboxApi mailboxApi) {
|
MailboxApiCaller mailboxApiCaller, MailboxApi mailboxApi) {
|
||||||
super(clock, mailboxApiCaller);
|
super(clock, mailboxApiCaller);
|
||||||
|
|||||||
@@ -0,0 +1,21 @@
|
|||||||
|
package org.briarproject.bramble.mailbox;
|
||||||
|
|
||||||
|
import org.briarproject.bramble.api.mailbox.MailboxProperties;
|
||||||
|
import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
|
||||||
|
|
||||||
|
@NotNullByDefault
|
||||||
|
interface MailboxClientFactory {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a client for communicating with a contact's mailbox.
|
||||||
|
*/
|
||||||
|
MailboxClient createContactMailboxClient(
|
||||||
|
TorReachabilityMonitor reachabilityMonitor);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a client for communicating with our own mailbox.
|
||||||
|
*/
|
||||||
|
MailboxClient createOwnMailboxClient(
|
||||||
|
TorReachabilityMonitor reachabilityMonitor,
|
||||||
|
MailboxProperties properties);
|
||||||
|
}
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
package org.briarproject.bramble.mailbox;
|
||||||
|
|
||||||
|
import org.briarproject.bramble.api.mailbox.MailboxProperties;
|
||||||
|
import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
|
||||||
|
|
||||||
|
import javax.inject.Inject;
|
||||||
|
import javax.inject.Provider;
|
||||||
|
|
||||||
|
@NotNullByDefault
|
||||||
|
class MailboxClientFactoryImpl implements MailboxClientFactory {
|
||||||
|
|
||||||
|
private final MailboxWorkerFactory workerFactory;
|
||||||
|
private final Provider<ContactMailboxConnectivityChecker>
|
||||||
|
contactCheckerProvider;
|
||||||
|
private final Provider<OwnMailboxConnectivityChecker> ownCheckerProvider;
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
MailboxClientFactoryImpl(MailboxWorkerFactory workerFactory,
|
||||||
|
Provider<ContactMailboxConnectivityChecker> contactCheckerProvider,
|
||||||
|
Provider<OwnMailboxConnectivityChecker> ownCheckerProvider) {
|
||||||
|
this.workerFactory = workerFactory;
|
||||||
|
this.contactCheckerProvider = contactCheckerProvider;
|
||||||
|
this.ownCheckerProvider = ownCheckerProvider;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public MailboxClient createContactMailboxClient(
|
||||||
|
TorReachabilityMonitor reachabilityMonitor) {
|
||||||
|
ConnectivityChecker connectivityChecker = contactCheckerProvider.get();
|
||||||
|
return new ContactMailboxClient(workerFactory, connectivityChecker,
|
||||||
|
reachabilityMonitor);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public MailboxClient createOwnMailboxClient(
|
||||||
|
TorReachabilityMonitor reachabilityMonitor,
|
||||||
|
MailboxProperties properties) {
|
||||||
|
ConnectivityChecker connectivityChecker = ownCheckerProvider.get();
|
||||||
|
return new OwnMailboxClient(workerFactory, connectivityChecker,
|
||||||
|
reachabilityMonitor, properties);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -14,6 +14,7 @@ import java.util.List;
|
|||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
import javax.annotation.concurrent.ThreadSafe;
|
import javax.annotation.concurrent.ThreadSafe;
|
||||||
|
import javax.inject.Inject;
|
||||||
|
|
||||||
import static java.util.logging.Level.WARNING;
|
import static java.util.logging.Level.WARNING;
|
||||||
import static java.util.logging.Logger.getLogger;
|
import static java.util.logging.Logger.getLogger;
|
||||||
@@ -30,6 +31,7 @@ class OwnMailboxConnectivityChecker extends ConnectivityCheckerImpl {
|
|||||||
private final TransactionManager db;
|
private final TransactionManager db;
|
||||||
private final MailboxSettingsManager mailboxSettingsManager;
|
private final MailboxSettingsManager mailboxSettingsManager;
|
||||||
|
|
||||||
|
@Inject
|
||||||
OwnMailboxConnectivityChecker(Clock clock,
|
OwnMailboxConnectivityChecker(Clock clock,
|
||||||
MailboxApiCaller mailboxApiCaller,
|
MailboxApiCaller mailboxApiCaller,
|
||||||
MailboxApi mailboxApi,
|
MailboxApi mailboxApi,
|
||||||
|
|||||||
Reference in New Issue
Block a user