public static void FibExample(MathGrpc.IMathServiceClient stub) { var recorder = new RecordingObserver <Num>(); stub.Fib(new FibArgs.Builder { Limit = 5 }.Build(), recorder); List <Num> numbers = recorder.ToList().Result; Console.WriteLine("Fib Result: " + string.Join("|", recorder.ToList().Result)); }
public static async Task FibExample(MathGrpc.IMathServiceClient stub) { var recorder = new RecordingObserver<Num>(); stub.Fib(new FibArgs.Builder { Limit = 5 }.Build(), recorder); List<Num> result = await recorder.ToList(); Console.WriteLine("Fib Result: " + string.Join("|", result)); }
public static void DivManyExample(MathGrpc.IMathServiceClient stub) { List <DivArgs> divArgsList = new List <DivArgs> { new DivArgs.Builder { Dividend = 10, Divisor = 3 }.Build(), new DivArgs.Builder { Dividend = 100, Divisor = 21 }.Build(), new DivArgs.Builder { Dividend = 7, Divisor = 2 }.Build() }; var recorder = new RecordingObserver <DivReply>(); var inputs = stub.DivMany(recorder); foreach (var input in divArgsList) { inputs.OnNext(input); } inputs.OnCompleted(); Console.WriteLine("DivMany Result: " + string.Join("|", recorder.ToList().Result)); }
public static void RunServerStreaming(TestServiceGrpc.ITestServiceClient client) { Console.WriteLine("running server_streaming"); var bodySizes = new List <int> { 31415, 9, 2653, 58979 }; var request = StreamingOutputCallRequest.CreateBuilder() .SetResponseType(PayloadType.COMPRESSABLE) .AddRangeResponseParameters(bodySizes.ConvertAll( (size) => ResponseParameters.CreateBuilder().SetSize(size).Build())) .Build(); var recorder = new RecordingObserver <StreamingOutputCallResponse>(); client.StreamingOutputCall(request, recorder); var responseList = recorder.ToList().Result; foreach (var res in responseList) { Assert.AreEqual(PayloadType.COMPRESSABLE, res.Payload.Type); } CollectionAssert.AreEqual(bodySizes, responseList.ConvertAll((item) => item.Payload.Body.Length)); Console.WriteLine("Passed!"); }
public void DivMany() { List <DivArgs> divArgsList = new List <DivArgs> { new DivArgs.Builder { Dividend = 10, Divisor = 3 }.Build(), new DivArgs.Builder { Dividend = 100, Divisor = 21 }.Build(), new DivArgs.Builder { Dividend = 7, Divisor = 2 }.Build() }; var recorder = new RecordingObserver <DivReply>(); var requestObserver = client.DivMany(recorder); foreach (var arg in divArgsList) { requestObserver.OnNext(arg); } requestObserver.OnCompleted(); var result = recorder.ToList().Result; CollectionAssert.AreEqual(new long[] { 3, 4, 3 }, result.ConvertAll((divReply) => divReply.Quotient)); CollectionAssert.AreEqual(new long[] { 1, 16, 1 }, result.ConvertAll((divReply) => divReply.Remainder)); }
public void Fib() { var recorder = new RecordingObserver <Num>(); client.Fib(new FibArgs.Builder { Limit = 6 }.Build(), recorder); CollectionAssert.AreEqual(new List <long> { 1, 1, 2, 3, 5, 8 }, recorder.ToList().Result.ConvertAll((n) => n.Num_)); }
public static void RunEmptyStream(TestServiceGrpc.ITestServiceClient client) { Console.WriteLine("running empty_stream"); var recorder = new RecordingObserver <StreamingOutputCallResponse>(); var inputs = client.FullDuplexCall(recorder); inputs.OnCompleted(); var responseList = recorder.ToList().Result; Assert.AreEqual(0, responseList.Count); Console.WriteLine("Passed!"); }
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); }
public void StartCall(string methodName, CallSafeHandle call, CompletionQueueSafeHandle cq) { var asyncCall = new AsyncCallServer <TRequest, TResponse>( method.ResponseMarshaller.Serializer, method.RequestMarshaller.Deserializer); asyncCall.Initialize(call); var requestObserver = new RecordingObserver <TRequest>(); var finishedTask = asyncCall.ServerSideCallAsync(requestObserver); var request = requestObserver.ToList().Result.Single(); var responseObserver = new ServerStreamingOutputObserver <TRequest, TResponse>(asyncCall); handler(request, responseObserver); finishedTask.Wait(); }
public IObserver <Num> Sum(IObserver <Num> responseObserver) { var recorder = new RecordingObserver <Num>(); Task.Factory.StartNew(() => { List <Num> inputs = recorder.ToList().Result; long sum = 0; foreach (Num num in inputs) { sum += num.Num_; } responseObserver.OnNext(Num.CreateBuilder().SetNum_(sum).Build()); responseObserver.OnCompleted(); }); return(recorder); }
public static async Task DivManyExample(MathGrpc.IMathServiceClient stub) { var divArgsList = new List <DivArgs> { new DivArgs.Builder { Dividend = 10, Divisor = 3 }.Build(), new DivArgs.Builder { Dividend = 100, Divisor = 21 }.Build(), new DivArgs.Builder { Dividend = 7, Divisor = 2 }.Build() }; var recorder = new RecordingObserver <DivReply>(); var inputs = stub.DivMany(recorder); divArgsList.Subscribe(inputs); var result = await recorder.ToList(); Console.WriteLine("DivMany Result: " + string.Join("|", result)); }
public static void RunServerStreaming(TestServiceGrpc.ITestServiceClient client) { Console.WriteLine("running server_streaming"); var bodySizes = new List<int> { 31415, 9, 2653, 58979 }; var request = StreamingOutputCallRequest.CreateBuilder() .SetResponseType(PayloadType.COMPRESSABLE) .AddRangeResponseParameters(bodySizes.ConvertAll( (size) => ResponseParameters.CreateBuilder().SetSize(size).Build())) .Build(); var recorder = new RecordingObserver<StreamingOutputCallResponse>(); client.StreamingOutputCall(request, recorder); var responseList = recorder.ToList().Result; foreach (var res in responseList) { Assert.AreEqual(PayloadType.COMPRESSABLE, res.Payload.Type); } CollectionAssert.AreEqual(bodySizes, responseList.ConvertAll((item) => item.Payload.Body.Length)); Console.WriteLine("Passed!"); }
public static async Task DivManyExample(MathGrpc.IMathServiceClient stub) { var divArgsList = new List<DivArgs> { new DivArgs.Builder { Dividend = 10, Divisor = 3 }.Build(), new DivArgs.Builder { Dividend = 100, Divisor = 21 }.Build(), new DivArgs.Builder { Dividend = 7, Divisor = 2 }.Build() }; var recorder = new RecordingObserver<DivReply>(); var inputs = stub.DivMany(recorder); divArgsList.Subscribe(inputs); var result = await recorder.ToList(); Console.WriteLine("DivMany Result: " + string.Join("|", result)); }
public static void DivManyExample(MathGrpc.IMathServiceClient stub) { List<DivArgs> divArgsList = new List<DivArgs> { new DivArgs.Builder { Dividend = 10, Divisor = 3 }.Build(), new DivArgs.Builder { Dividend = 100, Divisor = 21 }.Build(), new DivArgs.Builder { Dividend = 7, Divisor = 2 }.Build() }; var recorder = new RecordingObserver<DivReply>(); var inputs = stub.DivMany(recorder); foreach (var input in divArgsList) { inputs.OnNext(input); } inputs.OnCompleted(); Console.WriteLine("DivMany Result: " + string.Join("|", recorder.ToList().Result)); }
public void Fib() { var recorder = new RecordingObserver<Num>(); client.Fib(new FibArgs.Builder { Limit = 6 }.Build(), recorder); CollectionAssert.AreEqual(new List<long>{1, 1, 2, 3, 5, 8}, recorder.ToList().Result.ConvertAll((n) => n.Num_)); }
public void DivMany() { List<DivArgs> divArgsList = new List<DivArgs>{ new DivArgs.Builder { Dividend = 10, Divisor = 3 }.Build(), new DivArgs.Builder { Dividend = 100, Divisor = 21 }.Build(), new DivArgs.Builder { Dividend = 7, Divisor = 2 }.Build() }; var recorder = new RecordingObserver<DivReply>(); var requestObserver = client.DivMany(recorder); foreach (var arg in divArgsList) { requestObserver.OnNext(arg); } requestObserver.OnCompleted(); var result = recorder.ToList().Result; CollectionAssert.AreEqual(new long[] {3, 4, 3}, result.ConvertAll((divReply) => divReply.Quotient)); CollectionAssert.AreEqual(new long[] {1, 16, 1}, result.ConvertAll((divReply) => divReply.Remainder)); }
public static void RunEmptyStream(TestServiceGrpc.ITestServiceClient client) { Console.WriteLine("running empty_stream"); var recorder = new RecordingObserver<StreamingOutputCallResponse>(); var inputs = client.FullDuplexCall(recorder); inputs.OnCompleted(); var responseList = recorder.ToList().Result; Assert.AreEqual(0, responseList.Count); Console.WriteLine("Passed!"); }