From 113e7931119efd1f9263f35331e68694d9e5c7ee Mon Sep 17 00:00:00 2001 From: "Tristan B. Velloza Kildaire" Date: Mon, 2 Oct 2023 21:59:12 +0200 Subject: [PATCH] Client - Added `makeRequest(BaseMessage request, Queue responseQueue)` --- source/dante/client.d | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/source/dante/client.d b/source/dante/client.d index 4fb7c3c..ac5e227 100644 --- a/source/dante/client.d +++ b/source/dante/client.d @@ -122,6 +122,34 @@ public class DanteClient return future; } + + + /** + * Makes a request described by the provided message + * which, we will then return a future which will + * wait for a reply on the queue provided + * + * Params: + * request = the request message + * responseQueue = the queue which the future + * should await a reply from on + * Returns: a `Future` + */ + private Future makeRequest(BaseMessage request, Queue responseQueue) + { + BaseMessage doRequest() + { + TaggedMessage message = new TaggedMessage(responseQueue.getID(), request.encode()); + this.manager.sendMessage(message); + + TaggedMessage response = responseQueue.dequeue(); + return BaseMessage.decode(response.getPayload()); + } + + Future future = this.executor.submitTask!(doRequest); + + return future; + } }