Beispiel #1
0
        public async Task <StreamingInputCallResponse> StreamingInputCall(ServerCallContext context, IAsyncStreamReader <StreamingInputCallRequest> requestStream)
        {
            int sum = 0;
            await requestStream.ForEach(async request =>
            {
                sum += request.Payload.Body.Length;
            });

            return(StreamingInputCallResponse.CreateBuilder().SetAggregatedPayloadSize(sum).Build());
        }
Beispiel #2
0
        public IObserver <StreamingInputCallRequest> StreamingInputCall(IObserver <StreamingInputCallResponse> responseObserver)
        {
            var recorder = new RecordingObserver <StreamingInputCallRequest>();

            Task.Run(() => {
                int sum = 0;
                foreach (var req in recorder.ToList().Result)
                {
                    sum += req.Payload.Body.Length;
                }
                var response = StreamingInputCallResponse.CreateBuilder()
                               .SetAggregatedPayloadSize(sum).Build();
                responseObserver.OnNext(response);
                responseObserver.OnCompleted();
            });
            return(recorder);
        }