]> nmode's Git Repositories - signal-cli/blob - lib/src/main/java/org/asamk/signal/manager/ProvisioningManager.java
3aa26f31fc81d36bcd34e0b57e41e7a4342bac77
[signal-cli] / lib / src / main / java / org / asamk / signal / manager / ProvisioningManager.java
1 package org.asamk.signal.manager;
2
3 import org.asamk.signal.manager.config.ServiceConfig;
4 import org.asamk.signal.manager.config.ServiceEnvironment;
5
6 import java.io.File;
7 import java.io.IOException;
8 import java.net.URI;
9 import java.util.concurrent.TimeoutException;
10 import java.util.function.Consumer;
11
12 public interface ProvisioningManager {
13
14 static ProvisioningManager init(
15 File settingsPath, ServiceEnvironment serviceEnvironment, String userAgent
16 ) {
17 return init(settingsPath, serviceEnvironment, userAgent, null);
18 }
19
20 static ProvisioningManager init(
21 File settingsPath,
22 ServiceEnvironment serviceEnvironment,
23 String userAgent,
24 Consumer<Manager> newManagerListener
25 ) {
26 var pathConfig = PathConfig.createDefault(settingsPath);
27
28 final var serviceConfiguration = ServiceConfig.getServiceEnvironmentConfig(serviceEnvironment, userAgent);
29
30 return new ProvisioningManagerImpl(pathConfig, serviceConfiguration, userAgent, newManagerListener);
31 }
32
33 URI getDeviceLinkUri() throws TimeoutException, IOException;
34
35 String finishDeviceLink(String deviceName) throws IOException, TimeoutException, UserAlreadyExists;
36 }