public override async Task Fib(FibArgs request, IServerStreamWriter<Num> responseStream, ServerCallContext context) { var limit = request.Limit > 0 ? request.Limit : long.MaxValue; var fibEnumerator = FibInternal(limit).GetEnumerator(); // Keep streaming the sequence until the call is cancelled. // Use CancellationToken from ServerCallContext to detect the cancellation. while (!context.CancellationToken.IsCancellationRequested && fibEnumerator.MoveNext()) { await responseStream.WriteAsync(fibEnumerator.Current); await Task.Delay(100); } }
public async Task Fib(ServerCallContext context, FibArgs request, IServerStreamWriter<Num> responseStream) { if (request.Limit <= 0) { // TODO(jtattermusch): support cancellation throw new NotImplementedException("Not implemented yet"); } if (request.Limit > 0) { foreach (var num in FibInternal(request.Limit)) { await responseStream.WriteAsync(num); } } }
public async Task Fib(ServerCallContext context, FibArgs request, IServerStreamWriter <Num> responseStream) { if (request.Limit <= 0) { // TODO(jtattermusch): support cancellation throw new NotImplementedException("Not implemented yet"); } if (request.Limit > 0) { foreach (var num in FibInternal(request.Limit)) { await responseStream.Write(num); } } }
public void Fib(FibArgs request, IObserver <Num> responseObserver) { if (request.Limit <= 0) { // TODO: support cancellation.... throw new NotImplementedException("Not implemented yet"); } if (request.Limit > 0) { foreach (var num in FibInternal(request.Limit)) { responseObserver.OnNext(num); } responseObserver.OnCompleted(); } }
public async Task Fib(FibArgs request, IServerStreamWriter<Num> responseStream, ServerCallContext context) { if (request.Limit <= 0) { // keep streaming the sequence until cancelled. IEnumerator<Num> fibEnumerator = FibInternal(long.MaxValue).GetEnumerator(); while (!context.CancellationToken.IsCancellationRequested && fibEnumerator.MoveNext()) { await responseStream.WriteAsync(fibEnumerator.Current); await Task.Delay(100); } } if (request.Limit > 0) { foreach (var num in FibInternal(request.Limit)) { await responseStream.WriteAsync(num); } } }
public async Task Fib(FibArgs request, IServerStreamWriter <Num> responseStream, ServerCallContext context) { if (request.Limit <= 0) { // keep streaming the sequence until cancelled. IEnumerator <Num> fibEnumerator = FibInternal(long.MaxValue).GetEnumerator(); while (!context.CancellationToken.IsCancellationRequested && fibEnumerator.MoveNext()) { await responseStream.WriteAsync(fibEnumerator.Current); await Task.Delay(100); } } if (request.Limit > 0) { foreach (var num in FibInternal(request.Limit)) { await responseStream.WriteAsync(num); } } }
public AsyncServerStreamingCall <Num> Fib(FibArgs request, CancellationToken token = default(CancellationToken)) { var call = CreateCall(__ServiceName, __Method_Fib); return(Calls.AsyncServerStreamingCall(call, request, token)); }
public void Fib(FibArgs request, IObserver <Num> responseObserver, CancellationToken token = default(CancellationToken)) { var call = CreateCall(ServiceName, FibMethod); Calls.AsyncServerStreamingCall(call, request, responseObserver, token); }
public void Fib(FibArgs request, IObserver <Num> responseObserver, CancellationToken token = default(CancellationToken)) { var call = new Grpc.Core.Call <FibArgs, Num>(fibMethod, channel); Calls.AsyncServerStreamingCall(call, request, responseObserver, token); }
public void Fib(FibArgs request, IObserver<Num> responseObserver, CancellationToken token = default(CancellationToken)) { var call = new Grpc.Core.Call<FibArgs, Num>(fibMethod, channel); Calls.AsyncServerStreamingCall(call, request, responseObserver, token); }