implement request send
This commit is contained in:
parent
15b83a9c05
commit
37c93cc5d2
2 changed files with 11 additions and 5 deletions
|
@ -27,7 +27,7 @@ class QueuedClient implements ClientHook {
|
|||
public Request<AnyPointer.Builder, AnyPointer.Reader> newCall(long interfaceId, short methodId) {
|
||||
var hook = new Capability.LocalRequest(interfaceId, methodId, this);
|
||||
var root = hook.message.getRoot(AnyPointer.factory);
|
||||
return new Request<>(root, hook);
|
||||
return new Request<>(root, AnyPointer.factory, hook);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -5,10 +5,12 @@ import java.util.concurrent.CompletableFuture;
|
|||
public class Request<Params, Results> {
|
||||
|
||||
private final AnyPointer.Builder params;
|
||||
private final RequestHook hook;
|
||||
private final FromPointerReader<Results> results;
|
||||
private RequestHook hook;
|
||||
|
||||
Request(AnyPointer.Builder params, RequestHook hook) {
|
||||
Request(AnyPointer.Builder params, FromPointerReader<Results> results, RequestHook hook) {
|
||||
this.params = params;
|
||||
this.results = results;
|
||||
this.hook = hook;
|
||||
}
|
||||
|
||||
|
@ -17,7 +19,11 @@ public class Request<Params, Results> {
|
|||
}
|
||||
|
||||
CompletableFuture<Results> send() {
|
||||
return null;
|
||||
var typelessPromise = hook.send();
|
||||
hook = null; // prevent reuse
|
||||
return typelessPromise.getResponse().thenApply(response -> {
|
||||
return response.getAs(results);
|
||||
});
|
||||
}
|
||||
|
||||
static <T, U> Request<T, U> newBrokenRequest(Throwable exc) {
|
||||
|
@ -36,7 +42,7 @@ public class Request<Params, Results> {
|
|||
};
|
||||
|
||||
var root = message.getRoot(AnyPointer.factory);
|
||||
return new Request<T, U>(root, hook);
|
||||
return new Request<T, U>(root, null, hook);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue