2023-05-03 20:20:19 +01:00
|
|
|
module tasky.request;
|
|
|
|
|
|
|
|
import tristanable.encoding : TaggedMessage;
|
|
|
|
|
|
|
|
public alias ResponseHandler = void function(byte[]);
|
|
|
|
|
|
|
|
public abstract class Request
|
|
|
|
{
|
|
|
|
private byte[] requestMessage;
|
|
|
|
|
|
|
|
private ResponseHandler respFunc;
|
|
|
|
|
|
|
|
protected this(byte[] requestMessage, ResponseHandler respFunc)
|
|
|
|
{
|
|
|
|
this.requestMessage = requestMessage;
|
|
|
|
this.respFunc = respFunc;
|
|
|
|
}
|
|
|
|
|
2023-05-04 10:04:32 +01:00
|
|
|
protected this(byte[] requestMessage)
|
|
|
|
{
|
|
|
|
this(requestMessage, null);
|
|
|
|
}
|
|
|
|
|
2023-05-03 20:20:19 +01:00
|
|
|
package final byte[] getRequestData()
|
|
|
|
{
|
|
|
|
return requestMessage;
|
|
|
|
}
|
|
|
|
|
|
|
|
package final void process(byte[] responseData)
|
|
|
|
{
|
|
|
|
respFunc(responseData);
|
|
|
|
}
|
2023-05-04 13:15:19 +01:00
|
|
|
|
|
|
|
package final bool expectsResponse()
|
|
|
|
{
|
|
|
|
return respFunc !is null;
|
|
|
|
}
|
2023-05-03 20:20:19 +01:00
|
|
|
}
|