| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 | using System;using System.Threading;using System.Threading.Tasks;using System.Collections.Generic;using System.Reactive.Linq;using Google.GRPC.Core;namespace grpc.testing{    /// <summary>    /// TestService (this is handwritten version of code that will normally be generated).    /// </summary>    public class TestServiceGrpc    {        readonly static Marshaller<Empty> emptyMarshaller = Marshallers.Create((arg) => arg.ToByteArray(), Empty.ParseFrom);        readonly static Marshaller<SimpleRequest> simpleRequestMarshaller = Marshallers.Create((arg) => arg.ToByteArray(), SimpleRequest.ParseFrom);        readonly static Marshaller<SimpleResponse> simpleResponseMarshaller = Marshallers.Create((arg) => arg.ToByteArray(), SimpleResponse.ParseFrom);        readonly static Method<Empty, Empty> emptyCallMethod = new Method<Empty, Empty>(            MethodType.Unary,            "/grpc.testing.TestService/EmptyCall",            emptyMarshaller,            emptyMarshaller        );        readonly static Method<SimpleRequest, SimpleResponse> unaryCallMethod = new Method<SimpleRequest, SimpleResponse>(            MethodType.Unary,            "/grpc.testing.TestService/UnaryCall",            simpleRequestMarshaller,            simpleResponseMarshaller        );        public interface ITestServiceClient        {            Empty EmptyCall(Empty request, CancellationToken token = default(CancellationToken));            Task<Empty> EmptyCallAsync(Empty request, CancellationToken token = default(CancellationToken));            SimpleResponse UnaryCall(SimpleRequest request, CancellationToken token = default(CancellationToken));            Task<SimpleResponse> UnaryCallAsync(SimpleRequest request, CancellationToken token = default(CancellationToken));            // TODO: StreamingOutputCall            // TODO: StreamingInputCall            // TODO: FullDuplexCall            // TODO: HalfDuplexCall        }        public class TestServiceClientStub : ITestServiceClient        {            readonly Channel channel;            public TestServiceClientStub(Channel channel)            {                this.channel = channel;            }            public Empty EmptyCall(Empty request, CancellationToken token = default(CancellationToken))            {                var call = new Google.GRPC.Core.Call<Empty, Empty>(emptyCallMethod, channel);                return Calls.BlockingUnaryCall(call, request, token);            }            public Task<Empty> EmptyCallAsync(Empty request, CancellationToken token = default(CancellationToken))            {                var call = new Google.GRPC.Core.Call<Empty, Empty>(emptyCallMethod, channel);                return Calls.AsyncUnaryCall(call, request, token);            }            public SimpleResponse UnaryCall(SimpleRequest request, CancellationToken token = default(CancellationToken))            {                var call = new Google.GRPC.Core.Call<SimpleRequest, SimpleResponse>(unaryCallMethod, channel);                return Calls.BlockingUnaryCall(call, request, token);            }            public Task<SimpleResponse> UnaryCallAsync(SimpleRequest request, CancellationToken token = default(CancellationToken))            {                var call = new Google.GRPC.Core.Call<SimpleRequest, SimpleResponse>(unaryCallMethod, channel);                return Calls.AsyncUnaryCall(call, request, token);            }        }        // server-side interface        public interface ITestService        {            void EmptyCall(Empty request, IObserver<Empty> responseObserver);            void UnaryCall(SimpleRequest request, IObserver<SimpleResponse> responseObserver);        }        public static ServerServiceDefinition BindService(ITestService serviceImpl)        {            return ServerServiceDefinition.CreateBuilder("/grpc.testing.TestService/")                .AddMethod(emptyCallMethod, serviceImpl.EmptyCall)                .AddMethod(unaryCallMethod, serviceImpl.UnaryCall)                .Build();        }        public static ITestServiceClient NewStub(Channel channel)        {            return new TestServiceClientStub(channel);        }    }}
 |