Class AsyncClientStreamingCall<TRequest, TResponse> (2.48.0)

public sealed class AsyncClientStreamingCall<TRequest, TResponse> : IDisposable

Return type for client streaming calls.

Inheritance

Object > AsyncClientStreamingCall<TRequest, TResponse>

Namespace

Grpc.Core

Assembly

Grpc.Core.Api.dll

Type Parameters

Name Description
TRequest

Request message type for this call.

TResponse

Response message type for this call.

Constructors

AsyncClientStreamingCall(IClientStreamWriter<TRequest>, Task<TResponse>, Func<Object, Task<Metadata>>, Func<Object, Status>, Func<Object, Metadata>, Action<Object>, Object)

public AsyncClientStreamingCall(IClientStreamWriter<TRequest> requestStream, Task<TResponse> responseAsync, Func<object, Task<Metadata>> responseHeadersAsync, Func<object, Status> getStatusFunc, Func<object, Metadata> getTrailersFunc, Action<object> disposeAction, object state)

Creates a new AsyncClientStreamingCall object with the specified properties.

Parameters
Name Description
requestStream IClientStreamWriter<TRequest>

Stream of request values.

responseAsync Task<TResponse>

The response of the asynchronous call.

responseHeadersAsync Func<Object, Task<Metadata>>

Response headers of the asynchronous call.

getStatusFunc Func<Object, Status>

Delegate returning the status of the call.

getTrailersFunc Func<Object, Metadata>

Delegate returning the trailing metadata of the call.

disposeAction Action<Object>

Delegate to invoke when Dispose is called on the call object.

state Object

State object for use with the callback parameters.

AsyncClientStreamingCall(IClientStreamWriter<TRequest>, Task<TResponse>, Task<Metadata>, Func<Status>, Func<Metadata>, Action)

public AsyncClientStreamingCall(IClientStreamWriter<TRequest> requestStream, Task<TResponse> responseAsync, Task<Metadata> responseHeadersAsync, Func<Status> getStatusFunc, Func<Metadata> getTrailersFunc, Action disposeAction)

Creates a new AsyncClientStreamingCall object with the specified properties.

Parameters
Name Description
requestStream IClientStreamWriter<TRequest>

Stream of request values.

responseAsync Task<TResponse>

The response of the asynchronous call.

responseHeadersAsync Task<Metadata>

Response headers of the asynchronous call.

getStatusFunc Func<Status>

Delegate returning the status of the call.

getTrailersFunc Func<Metadata>

Delegate returning the trailing metadata of the call.

disposeAction Action

Delegate to invoke when Dispose is called on the call object.

Properties

RequestStream

public IClientStreamWriter<TRequest> RequestStream { get; }

Async stream to send streaming requests.

Property Value
Type Description
IClientStreamWriter<TRequest>

ResponseAsync

public Task<TResponse> ResponseAsync { get; }

Asynchronous call result.

Property Value
Type Description
Task<TResponse>

ResponseHeadersAsync

public Task<Metadata> ResponseHeadersAsync { get; }

Asynchronous access to response headers.

Property Value
Type Description
Task<Metadata>

Methods

ConfigureAwait(Boolean)

public ConfiguredTaskAwaitable<TResponse> ConfigureAwait(bool continueOnCapturedContext)

Configures an awaiter used to await this AsyncClientStreamingCall<TRequest, TResponse>.

Parameter
Name Description
continueOnCapturedContext Boolean

true to attempt to marshal the continuation back to the original context captured; otherwise, false.

Returns
Type Description
ConfiguredTaskAwaitable<TResponse>

An object used to await this task.

Dispose()

public void Dispose()

Provides means to cleanup after the call. If the call has already finished normally (request stream has been completed and call result has been received), doesn't do anything. Otherwise, requests cancellation of the call which should terminate all pending async operations associated with the call. As a result, all resources being used by the call should be released eventually.

Remarks

Normally, there is no need for you to dispose the call unless you want to utilize the "Cancel" semantics of invoking Dispose.

GetAwaiter()

public TaskAwaiter<TResponse> GetAwaiter()

Gets an awaiter used to await this AsyncClientStreamingCall<TRequest, TResponse>.

Returns
Type Description
TaskAwaiter<TResponse>

An awaiter instance.

Remarks

This method is intended for compiler use rather than use directly in code.

GetStatus()

public Status GetStatus()

Gets the call status if the call has already finished. Throws InvalidOperationException otherwise.

Returns
Type Description
Status

GetTrailers()

public Metadata GetTrailers()

Gets the call trailing metadata if the call has already finished. Throws InvalidOperationException otherwise.

Returns
Type Description
Metadata