public sealed class AsyncDuplexStreamingCall<TRequest, TResponse> : IDisposable
Return type for bidirectional streaming calls.
Implements
IDisposableNamespace
Grpc.CoreAssembly
Grpc.Core.Api.dll
Type Parameters |
|
---|---|
Name | Description |
TRequest |
Request message type for this call. |
TResponse |
Response message type for this call. |
Constructors
AsyncDuplexStreamingCall(IClientStreamWriter<TRequest>, IAsyncStreamReader<TResponse>, Func<object, Task<Metadata>>, Func<object, Status>, Func<object, Metadata>, Action<object>, object)
public AsyncDuplexStreamingCall(IClientStreamWriter<TRequest> requestStream, IAsyncStreamReader<TResponse> responseStream, Func<object, Task<Metadata>> responseHeadersAsync, Func<object, Status> getStatusFunc, Func<object, Metadata> getTrailersFunc, Action<object> disposeAction, object state)
Creates a new AsyncDuplexStreamingCall object with the specified properties.
Parameters | |
---|---|
Name | Description |
requestStream |
IClientStreamWriter Stream of request values. |
responseStream |
IAsyncStreamReader Stream of response values. |
responseHeadersAsync |
FuncobjectTaskMetadata Response headers of the asynchronous call. |
getStatusFunc |
FuncobjectStatus Delegate returning the status of the call. |
getTrailersFunc |
FuncobjectMetadata Delegate returning the trailing metadata of the call. |
disposeAction |
Actionobject Delegate to invoke when Dispose is called on the call object. |
state |
object State object for use with the callback parameters. |
AsyncDuplexStreamingCall(IClientStreamWriter<TRequest>, IAsyncStreamReader<TResponse>, Task<Metadata>, Func<Status>, Func<Metadata>, Action)
public AsyncDuplexStreamingCall(IClientStreamWriter<TRequest> requestStream, IAsyncStreamReader<TResponse> responseStream, Task<Metadata> responseHeadersAsync, Func<Status> getStatusFunc, Func<Metadata> getTrailersFunc, Action disposeAction)
Creates a new AsyncDuplexStreamingCall object with the specified properties.
Parameters | |
---|---|
Name | Description |
requestStream |
IClientStreamWriter Stream of request values. |
responseStream |
IAsyncStreamReader Stream of response values. |
responseHeadersAsync |
TaskMetadata Response headers of the asynchronous call. |
getStatusFunc |
FuncStatus Delegate returning the status of the call. |
getTrailersFunc |
FuncMetadata 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 |
ResponseHeadersAsync
public Task<Metadata> ResponseHeadersAsync { get; }
Asynchronous access to response headers.
Property Value | |
---|---|
Type | Description |
TaskMetadata |
ResponseStream
public IAsyncStreamReader<TResponse> ResponseStream { get; }
Async stream to read streaming responses.
Property Value | |
---|---|
Type | Description |
IAsyncStreamReader |
Methods
Dispose()
public void Dispose()
Provides means to cleanup after the call. If the call has already finished normally (request stream has been completed and response stream has been fully read), 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.
Normally, there is no need for you to dispose the call unless you want to utilize the
"Cancel" semantics of invoking Dispose
.
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 |