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) {
|
public Request<AnyPointer.Builder, AnyPointer.Reader> newCall(long interfaceId, short methodId) {
|
||||||
var hook = new Capability.LocalRequest(interfaceId, methodId, this);
|
var hook = new Capability.LocalRequest(interfaceId, methodId, this);
|
||||||
var root = hook.message.getRoot(AnyPointer.factory);
|
var root = hook.message.getRoot(AnyPointer.factory);
|
||||||
return new Request<>(root, hook);
|
return new Request<>(root, AnyPointer.factory, hook);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -5,10 +5,12 @@ import java.util.concurrent.CompletableFuture;
|
||||||
public class Request<Params, Results> {
|
public class Request<Params, Results> {
|
||||||
|
|
||||||
private final AnyPointer.Builder params;
|
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.params = params;
|
||||||
|
this.results = results;
|
||||||
this.hook = hook;
|
this.hook = hook;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -17,7 +19,11 @@ public class Request<Params, Results> {
|
||||||
}
|
}
|
||||||
|
|
||||||
CompletableFuture<Results> send() {
|
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) {
|
static <T, U> Request<T, U> newBrokenRequest(Throwable exc) {
|
||||||
|
@ -36,7 +42,7 @@ public class Request<Params, Results> {
|
||||||
};
|
};
|
||||||
|
|
||||||
var root = message.getRoot(AnyPointer.factory);
|
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