did/did-sdk/src/main/java/io/github/ehlxr/did/client/Client.java

54 lines
1.1 KiB
Java
Raw Normal View History

2021-01-22 07:40:02 +00:00
package io.github.ehlxr.did.client;
2018-08-14 07:21:56 +00:00
2021-01-20 07:25:58 +00:00
2021-01-22 07:40:02 +00:00
import io.github.ehlxr.did.common.SdkProto;
2021-01-20 07:25:58 +00:00
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
2018-08-14 07:21:56 +00:00
/**
* @author ehlxr
*/
public interface Client {
2021-01-20 07:25:58 +00:00
ConcurrentMap<Integer, ResponseFuture> REPONSE_MAP = new ConcurrentHashMap<>();
/**
* sdk client
*/
2018-08-14 07:21:56 +00:00
void start();
2021-01-20 07:25:58 +00:00
/**
* sdk client
*/
2018-08-14 07:21:56 +00:00
void shutdown();
2021-01-20 07:25:58 +00:00
/**
*
*
* @param timeoutMillis
* @return {@link SdkProto}
* @throws Exception
*/
SdkProto invokeSync(long timeoutMillis) throws Exception;
2018-08-14 07:21:56 +00:00
2021-01-20 07:25:58 +00:00
/**
*
*
* @param timeoutMillis
* @param invokeCallback
* @throws Exception
*/
void invokeAsync(long timeoutMillis, InvokeCallback invokeCallback) throws Exception;
2021-01-19 10:39:42 +00:00
2021-01-20 07:25:58 +00:00
/**
* id
*
* @param timeoutMillis
* @return id
* @throws Exception
*/
2021-01-19 10:39:42 +00:00
default long invoke(long timeoutMillis) throws Exception {
2021-01-20 07:25:58 +00:00
return invokeSync(timeoutMillis).getDid();
2021-01-19 10:39:42 +00:00
}
2018-08-14 07:21:56 +00:00
}