Table of Contents

Class IncomingRequestExtensions

Namespace
IceRpc.Slice.Operations
Assembly
IceRpc.Slice.dll

Provides extension methods for IncomingRequest to decode its Slice-encoded payload.

public static class IncomingRequestExtensions
Inheritance
IncomingRequestExtensions
Inherited Members

Methods

DecodeArgsAsync<T>(IncomingRequest, DecodeFunc<T>, CancellationToken)

Decodes a request payload into a list of arguments.

public static ValueTask<T> DecodeArgsAsync<T>(this IncomingRequest request, DecodeFunc<T> decodeFunc, CancellationToken cancellationToken = default)

Parameters

request IncomingRequest

The incoming request.

decodeFunc DecodeFunc<T>

The decode function for the arguments from the payload.

cancellationToken CancellationToken

A cancellation token that receives the cancellation requests.

Returns

ValueTask<T>

The request arguments.

Type Parameters

T

The type of the request parameters.

DecodeEmptyArgsAsync(IncomingRequest, CancellationToken)

Verifies that a request payload carries no argument or only unknown tagged arguments.

public static ValueTask DecodeEmptyArgsAsync(this IncomingRequest request, CancellationToken cancellationToken = default)

Parameters

request IncomingRequest

The incoming request.

cancellationToken CancellationToken

A cancellation token that receives the cancellation requests.

Returns

ValueTask

A value task that completes when the checking is complete.

DispatchOperationAsync(IncomingRequest, Func<IncomingRequest, CancellationToken, ValueTask>, Func<IFeatureCollection, CancellationToken, ValueTask>, CancellationToken)

Dispatches an incoming request to a method that matches the request's operation name. The operation does not accept any arguments and does not return anything.

public static ValueTask<OutgoingResponse> DispatchOperationAsync(this IncomingRequest request, Func<IncomingRequest, CancellationToken, ValueTask> decodeArgs, Func<IFeatureCollection, CancellationToken, ValueTask> method, CancellationToken cancellationToken = default)

Parameters

request IncomingRequest

The incoming request.

decodeArgs Func<IncomingRequest, CancellationToken, ValueTask>

A function that decodes the empty arguments from the request payload.

method Func<IFeatureCollection, CancellationToken, ValueTask>

The user-provided implementation of the operation.

cancellationToken CancellationToken

A cancellation token that receives the cancellation requests.

Returns

ValueTask<OutgoingResponse>

A value task that holds the outgoing response.

DispatchOperationAsync<TArgs>(IncomingRequest, Func<IncomingRequest, CancellationToken, ValueTask<TArgs>>, Func<TArgs, IFeatureCollection, CancellationToken, ValueTask>, CancellationToken)

Dispatches an incoming request to a method that matches the request's operation name. The operation does not return anything.

public static ValueTask<OutgoingResponse> DispatchOperationAsync<TArgs>(this IncomingRequest request, Func<IncomingRequest, CancellationToken, ValueTask<TArgs>> decodeArgs, Func<TArgs, IFeatureCollection, CancellationToken, ValueTask> method, CancellationToken cancellationToken = default)

Parameters

request IncomingRequest

The incoming request.

decodeArgs Func<IncomingRequest, CancellationToken, ValueTask<TArgs>>

A function that decodes the arguments from the request payload.

method Func<TArgs, IFeatureCollection, CancellationToken, ValueTask>

The user-provided implementation of the operation.

cancellationToken CancellationToken

A cancellation token that receives the cancellation requests.

Returns

ValueTask<OutgoingResponse>

A value task that holds the outgoing response.

Type Parameters

TArgs

The type of the operation arguments.

DispatchOperationAsync<TReturnValue>(IncomingRequest, Func<IncomingRequest, CancellationToken, ValueTask>, Func<IFeatureCollection, CancellationToken, ValueTask<TReturnValue>>, Func<TReturnValue, SliceEncodeOptions?, PipeReader>, Func<TReturnValue, SliceEncodeOptions?, PipeReader>?, CancellationToken)

Dispatches an incoming request to a method that matches the request's operation name. The operation does not accept any arguments.

public static ValueTask<OutgoingResponse> DispatchOperationAsync<TReturnValue>(this IncomingRequest request, Func<IncomingRequest, CancellationToken, ValueTask> decodeArgs, Func<IFeatureCollection, CancellationToken, ValueTask<TReturnValue>> method, Func<TReturnValue, SliceEncodeOptions?, PipeReader> encodeReturnValue, Func<TReturnValue, SliceEncodeOptions?, PipeReader>? encodeReturnValueStream = null, CancellationToken cancellationToken = default)

Parameters

request IncomingRequest

The incoming request.

decodeArgs Func<IncomingRequest, CancellationToken, ValueTask>

A function that decodes the empty arguments from the request payload.

method Func<IFeatureCollection, CancellationToken, ValueTask<TReturnValue>>

The user-provided implementation of the operation.

encodeReturnValue Func<TReturnValue, SliceEncodeOptions, PipeReader>

A function that encodes the return value into a PipeReader.

encodeReturnValueStream Func<TReturnValue, SliceEncodeOptions, PipeReader>

A function that encodes the stream portion of the return value.

cancellationToken CancellationToken

A cancellation token that receives the cancellation requests.

Returns

ValueTask<OutgoingResponse>

A value task that holds the outgoing response.

Type Parameters

TReturnValue

The type of the operation return value.

DispatchOperationAsync<TArgs, TReturnValue>(IncomingRequest, Func<IncomingRequest, CancellationToken, ValueTask<TArgs>>, Func<TArgs, IFeatureCollection, CancellationToken, ValueTask<TReturnValue>>, Func<TReturnValue, SliceEncodeOptions?, PipeReader>, Func<TReturnValue, SliceEncodeOptions?, PipeReader>?, CancellationToken)

Dispatches an incoming request to a method that matches the request's operation name.

public static ValueTask<OutgoingResponse> DispatchOperationAsync<TArgs, TReturnValue>(this IncomingRequest request, Func<IncomingRequest, CancellationToken, ValueTask<TArgs>> decodeArgs, Func<TArgs, IFeatureCollection, CancellationToken, ValueTask<TReturnValue>> method, Func<TReturnValue, SliceEncodeOptions?, PipeReader> encodeReturnValue, Func<TReturnValue, SliceEncodeOptions?, PipeReader>? encodeReturnValueStream = null, CancellationToken cancellationToken = default)

Parameters

request IncomingRequest

The incoming request.

decodeArgs Func<IncomingRequest, CancellationToken, ValueTask<TArgs>>

A function that decodes the arguments from the request payload.

method Func<TArgs, IFeatureCollection, CancellationToken, ValueTask<TReturnValue>>

The user-provided implementation of the operation.

encodeReturnValue Func<TReturnValue, SliceEncodeOptions, PipeReader>

A function that encodes the return value into a PipeReader.

encodeReturnValueStream Func<TReturnValue, SliceEncodeOptions, PipeReader>

A function that encodes the stream portion of the return value.

cancellationToken CancellationToken

A cancellation token that receives the cancellation requests.

Returns

ValueTask<OutgoingResponse>

A value task that holds the outgoing response.

Type Parameters

TArgs

The type of the operation arguments.

TReturnValue

The type of the operation return value.