<PackageReference Include="Grpc.Net.Client" Version="2.71.0" />

Grpc.Net.Client.Internal.Retry.RetryCallBase<TRequest, TResponse>

abstract class RetryCallBase<TRequest, TResponse> : IGrpcCall<TRequest, TResponse>, IDisposable, IEnumerable<KeyValuePair<string, object>>, IEnumerable
protected int AttemptCount { get; }

protected bool BufferedCurrentMessage { get; protected set; }

protected List<ReadOnlyMemory<byte>> BufferedMessages { get; }

public object CallWrapper { get; set; }

public GrpcChannel Channel { get; }

public bool ClientStreamComplete { get; set; }

public IAsyncStreamReader<TResponse> ClientStreamReader { get; }

public WriteOptions ClientStreamWriteOptions { get; }

public IClientStreamWriter<TRequest> ClientStreamWriter { get; }

public Task<IGrpcCall<TRequest, TResponse>> CommitedCallTask { get; }

protected long CurrentCallBufferSize { get; protected set; }

public bool Disposed { get; }

protected object Lock { get; }

protected ILogger Logger { get; }

protected int MaxRetryAttempts { get; }

public int MessagesRead { get; }

public int MessagesWritten { get; }

protected Method<TRequest, TResponse> Method { get; }

protected TaskCompletionSource<IGrpcCall<TRequest, TResponse>> NewActiveCallTcs { get; protected set; }

protected CallOptions Options { get; }

public bool ResponseFinished { get; }

protected RetryCallBase(GrpcChannel channel, Method<TRequest, TResponse> method, CallOptions options, string loggerName, int retryAttempts)

protected void Cleanup(bool observeExceptions)

public abstract Task ClientStreamCompleteAsync()

public abstract Task ClientStreamWriteAsync(TRequest message, CancellationToken cancellationToken)

protected void CommitCall(IGrpcCall<TRequest, TResponse> call, CommitReason commitReason)

protected StatusGrpcCall<TRequest, TResponse> CreateStatusCall(Status status)

public void Dispose()

protected virtual void Dispose(bool disposing)

protected Task<IGrpcCall<TRequest, TResponse>> GetActiveCallUnsynchronizedAsync(IGrpcCall<TRequest, TResponse> previousCall)

public IEnumerator<KeyValuePair<string, object>> GetEnumerator()

public Task<TResponse> GetResponseAsync()

public Task<Metadata> GetResponseHeadersAsync()

protected int? GetRetryPushback(HttpResponseMessage httpResponse)

public Status GetStatus()

public Metadata GetTrailers()

protected void HandleUnexpectedError(Exception ex)

protected bool HasClientStream()

protected bool HasResponseStream()

protected bool IsDeadlineExceeded()

protected bool IsRetryThrottlingActive()

protected virtual void OnBufferMessageWritten(int count)

protected virtual void OnCancellation()

protected abstract void OnCommitCall(IGrpcCall<TRequest, TResponse> call)

protected void OnStartingAttempt()

protected void RetryAttemptCallFailure()

protected void RetryAttemptCallSuccess()

protected byte[] SerializePayload(GrpcCall<TRequest, TResponse> call, CallOptions callOptions, TRequest request)

protected void SetNewActiveCallUnsynchronized(IGrpcCall<TRequest, TResponse> call)

public void StartClientStreaming()

protected abstract void StartCore(Action<GrpcCall<TRequest, TResponse>> startCallFunc)

public void StartDuplexStreaming()

public void StartServerStreaming(TRequest request)

public void StartUnary(TRequest request)

public bool TryRegisterCancellation(CancellationToken cancellationToken, out Nullable cancellationTokenRegistration)

protected Task WriteNewMessage(GrpcCall<TRequest, TResponse> call, Stream writeStream, CallOptions callOptions, TRequest message)