Class InlineInvoker
- Namespace
- IceRpc
- Assembly
- IceRpc.dll
Adapts a function to the IInvoker interface.
public class InlineInvoker : IInvoker
- Inheritance
-
InlineInvoker
- Implements
- Inherited Members
Constructors
InlineInvoker(Func<OutgoingRequest, CancellationToken, Task<IncomingResponse>>)
Constructs an InlineInvoker using a function.
public InlineInvoker(Func<OutgoingRequest, CancellationToken, Task<IncomingResponse>> function)
Parameters
function
Func<OutgoingRequest, CancellationToken, Task<IncomingResponse>>The function that implements the invoker's InvokerAsync method.
Methods
InvokeAsync(OutgoingRequest, CancellationToken)
Sends an outgoing request and returns the corresponding incoming response.
public Task<IncomingResponse> InvokeAsync(OutgoingRequest request, CancellationToken cancellationToken = default)
Parameters
request
OutgoingRequestThe outgoing request being sent.
cancellationToken
CancellationTokenA cancellation token that receives the cancellation requests.
Returns
- Task<IncomingResponse>
The corresponding IncomingResponse.
Remarks
When request
is a two-way request, the returned task will not complete successfully
until after the request's Payload is fully sent and the response is received from
the peer. When the request is a one-way request, the returned task completes successfully with an empty response
when the request's Payload is fully sent. For all requests (one-way and two-way),
the sending of the request's PayloadContinuation can continue in a background task
after the returned task has completed successfully.