tasky/source/tasky/engine.d

35 lines
841 B
D

module tasky.engine;
import tristanable : Manager, Queue, TaggedMessage;
import tasky.request : Request;
public class Engine
{
private Manager tManager;
this(Manager tristanableManager)
{
this.tManager = tristanableManager;
}
// TODO: Continue working on this
public void makeRequest(Request req)
{
/* Get a unique queue */
Queue newQueue = tManager.getUniqueQueue();
/* Create a tagged message with the tag */
ulong tag = newQueue.getID();
TaggedMessage tReq = new TaggedMessage(tag, req.getRequestData());
/* Send the message */
tManager.sendMessage(tReq);
/* Await for a response */
byte[] resp = newQueue.dequeue().getPayload();
/* Run the response handler with the response */
req.process(resp);
}
}