typically scoped to clientName/dispatcher
Send a request req
to the server and provide a value T
to insert into the
pipeline queue.
Send a request req
to the server and provide a value T
to insert into the
pipeline queue. The value is provided back to respond
to handle the corresponding
request.
the request to send
the promise to fulfill when the request is handled.
a value associated with req
that is handed back during response handling.
Handle the server response out
given the corresponding element value
enqueued during dispatch.
Handle the server response out
given the corresponding element value
enqueued during dispatch.
This typically involves fulfilling p
with a function of (T, Try[Out]) => Rep
the corresponding element returned by pipeline
during dispatch
the promise to fulfill the rpc
the server response
This is the method to override/implement to create your own Service.
This is the method to override/implement to create your own Service.
Dispatch a request, satisfying Promise p
with the response;
the returned Future is satisfied when the dispatch is complete:
only one request is admitted at any given time.
Dispatch a request, satisfying Promise p
with the response;
the returned Future is satisfied when the dispatch is complete:
only one request is admitted at any given time.
Note that GenSerialClientDispatcher manages interrupts,
satisfying p
should it be interrupted -- implementors beware:
use only updateIfEmpty
variants for satisfying the Promise.
GenSerialClientDispatcher will also attempt to satisfy the promise
if the returned Future[Unit]
fails.
Determines whether this Service
is available (can accept requests
with a reasonable likelihood of success).
Determines whether this Service
is available (can accept requests
with a reasonable likelihood of success).
The current availability Status of this Service
.
The current availability Status of this Service
.
A generic pipelining dispatcher, which assumes that servers will respect normal pipelining semantics, and that replies will be sent in the same order as requests were sent. Exploits GenSerialClientDispatcher to serialize requests.
Because many requests might be sharing the same transport, Futures returned by GenPipeliningDispatcher#apply are masked, and will only propagate the interrupt if the future doesn't return after a configurable amount of time after the interruption. This ensures that interrupting a Future in one request won't change the result of another request unless the connection is stuck, and does not look like it will make progress. Use StalledPipelineTimeout to configure this timeout.