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);
            }
        }
Example #2
0
        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);
                }
            }
        }
Example #3
0
        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);
                }
            }
        }
Example #4
0
        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();
            }
        }
Example #5
0
        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);
                }
            }
        }
Example #6
0
        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);
                }
            }
        }
Example #7
0
            public AsyncServerStreamingCall <Num> Fib(FibArgs request, CancellationToken token = default(CancellationToken))
            {
                var call = CreateCall(__ServiceName, __Method_Fib);

                return(Calls.AsyncServerStreamingCall(call, request, token));
            }
Example #8
0
            public void Fib(FibArgs request, IObserver <Num> responseObserver, CancellationToken token = default(CancellationToken))
            {
                var call = CreateCall(ServiceName, FibMethod);

                Calls.AsyncServerStreamingCall(call, request, responseObserver, token);
            }
Example #9
0
            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);
            }
Example #10
0
 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);
 }