mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-12 18:59:06 +01:00
Replace Client interface with OpenDatabaseHook.
This commit is contained in:
@@ -1,8 +1,10 @@
|
||||
package org.briarproject.bramble.api.identity;
|
||||
|
||||
import org.briarproject.bramble.api.crypto.CryptoExecutor;
|
||||
import org.briarproject.bramble.api.crypto.SecretKey;
|
||||
import org.briarproject.bramble.api.db.DbException;
|
||||
import org.briarproject.bramble.api.db.Transaction;
|
||||
import org.briarproject.bramble.api.lifecycle.LifecycleManager;
|
||||
import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
|
||||
|
||||
@NotNullByDefault
|
||||
@@ -15,17 +17,13 @@ public interface IdentityManager {
|
||||
LocalAuthor createLocalAuthor(String name);
|
||||
|
||||
/**
|
||||
* Registers the given local identity with the manager. The identity is
|
||||
* not stored until {@link #storeLocalAuthor()} is called.
|
||||
* Registers the given local identity with the manager. This method should
|
||||
* be called before {@link LifecycleManager#startServices(SecretKey)}. The
|
||||
* identity is stored when {@link LifecycleManager#startServices(SecretKey)}
|
||||
* is called.
|
||||
*/
|
||||
void registerLocalAuthor(LocalAuthor a);
|
||||
|
||||
/**
|
||||
* Stores the local identity registered with
|
||||
* {@link #registerLocalAuthor(LocalAuthor)}, if any.
|
||||
*/
|
||||
void storeLocalAuthor() throws DbException;
|
||||
|
||||
/**
|
||||
* Returns the cached local identity or loads it from the database.
|
||||
*/
|
||||
|
||||
@@ -2,16 +2,17 @@ package org.briarproject.bramble.api.lifecycle;
|
||||
|
||||
import org.briarproject.bramble.api.crypto.SecretKey;
|
||||
import org.briarproject.bramble.api.db.DatabaseComponent;
|
||||
import org.briarproject.bramble.api.db.DbException;
|
||||
import org.briarproject.bramble.api.db.Transaction;
|
||||
import org.briarproject.bramble.api.lifecycle.LifecycleManager.OpenDatabaseHook.Priority;
|
||||
import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
|
||||
import org.briarproject.bramble.api.sync.Client;
|
||||
|
||||
import java.util.concurrent.ExecutorService;
|
||||
|
||||
/**
|
||||
* Manages the lifecycle of the app, starting {@link Client Clients}, starting
|
||||
* and stopping {@link Service Services}, shutting down
|
||||
* {@link ExecutorService ExecutorServices}, and opening and closing the
|
||||
* {@link DatabaseComponent}.
|
||||
* Manages the lifecycle of the app: opening and closing the
|
||||
* {@link DatabaseComponent} starting and stopping {@link Service Services},
|
||||
* and shutting down {@link ExecutorService ExecutorServices}.
|
||||
*/
|
||||
@NotNullByDefault
|
||||
public interface LifecycleManager {
|
||||
@@ -42,18 +43,19 @@ public interface LifecycleManager {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Registers a hook to be called after the database is opened and before
|
||||
* {@link Service services} are started. This method should be called
|
||||
* before {@link #startServices(SecretKey)}.
|
||||
*/
|
||||
void registerOpenDatabaseHook(OpenDatabaseHook hook, Priority p);
|
||||
|
||||
/**
|
||||
* Registers a {@link Service} to be started and stopped. This method
|
||||
* should be called before {@link #startServices(SecretKey)}.
|
||||
*/
|
||||
void registerService(Service s);
|
||||
|
||||
/**
|
||||
* Registers a {@link Client} to be started. This method should be called
|
||||
* before {@link #startServices(SecretKey)}.
|
||||
*/
|
||||
void registerClient(Client c);
|
||||
|
||||
/**
|
||||
* Registers an {@link ExecutorService} to be shut down. This method
|
||||
* should be called before {@link #startServices(SecretKey)}.
|
||||
@@ -62,7 +64,7 @@ public interface LifecycleManager {
|
||||
|
||||
/**
|
||||
* Opens the {@link DatabaseComponent} using the given key and starts any
|
||||
* registered {@link Client Clients} and {@link Service Services}.
|
||||
* registered {@link Service Services}.
|
||||
*/
|
||||
StartResult startServices(SecretKey dbKey);
|
||||
|
||||
@@ -80,8 +82,7 @@ public interface LifecycleManager {
|
||||
|
||||
/**
|
||||
* Waits for the {@link DatabaseComponent} to be opened and all registered
|
||||
* {@link Client Clients} and {@link Service Services} to start before
|
||||
* returning.
|
||||
* {@link Service Services} to start before returning.
|
||||
*/
|
||||
void waitForStartup() throws InterruptedException;
|
||||
|
||||
@@ -97,4 +98,10 @@ public interface LifecycleManager {
|
||||
*/
|
||||
LifecycleState getLifecycleState();
|
||||
|
||||
interface OpenDatabaseHook {
|
||||
|
||||
enum Priority {EARLY, NORMAL, LATE}
|
||||
|
||||
void onDatabaseOpened(Transaction txn) throws DbException;
|
||||
}
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
package org.briarproject.bramble.api.sync;
|
||||
|
||||
import org.briarproject.bramble.api.db.DbException;
|
||||
import org.briarproject.bramble.api.db.Transaction;
|
||||
import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
|
||||
|
||||
@NotNullByDefault
|
||||
public interface Client {
|
||||
|
||||
/**
|
||||
* Called at startup to create any local state needed by the client.
|
||||
*/
|
||||
void createLocalState(Transaction txn) throws DbException;
|
||||
}
|
||||
Reference in New Issue
Block a user