示例#1
0
        public static async Task FibExample(Math.MathClient client)
        {
            using (var call = client.Fib(new FibArgs {
                Limit = 5
            }))
            {
                List <Num> result = await call.ResponseStream.ToListAsync();

                Console.WriteLine("Fib Result: " + string.Join("|", result));
            }
        }
示例#2
0
 /// <summary>
 /// Shows how to handle a call ending with non-OK status.
 /// </summary>
 public static async Task HandleErrorExample(Math.MathClient client)
 {
     try
     {
         DivReply result = await client.DivAsync(new DivArgs { Dividend = 5, Divisor = 0 });
     }
     catch (RpcException ex)
     {
         Console.WriteLine(string.Format("RPC ended with status {0}", ex.Status));
     }
 }
示例#3
0
        public static void Main(string[] args)
        {
            var channel = new Channel("127.0.0.1", 23456, ChannelCredentials.Insecure);
            Math.IMathClient client = new Math.MathClient(channel);
            MathExamples.DivExample(client);

            MathExamples.DivAsyncExample(client).Wait();

            MathExamples.FibExample(client).Wait();

            MathExamples.SumExample(client).Wait();

            MathExamples.DivManyExample(client).Wait();

            MathExamples.DependendRequestsExample(client).Wait();

            channel.ShutdownAsync().Wait();
        }
示例#4
0
        /// <summary>
        /// Shows how to send request headers and how to access response headers
        /// and response trailers.
        /// </summary>
        public static async Task MetadataExample(Math.MathClient client)
        {
            var requestHeaders = new Metadata
            {
                { "custom-header", "custom-value" }
            };

            var call = client.DivAsync(new DivArgs {
                Dividend = 5, Divisor = 0
            }, requestHeaders);

            // Get response headers
            Metadata responseHeaders = await call.ResponseHeadersAsync;

            var result = await call;

            // Get response trailers after the call has finished.
            Metadata responseTrailers = call.GetTrailers();
        }
示例#5
0
        public static void Main(string[] args)
        {
            var channel = new Channel("127.0.0.1", 23456, Credentials.Insecure);

            Math.IMathClient client = new Math.MathClient(channel);
            MathExamples.DivExample(client);

            MathExamples.DivAsyncExample(client).Wait();

            MathExamples.FibExample(client).Wait();

            MathExamples.SumExample(client).Wait();

            MathExamples.DivManyExample(client).Wait();

            MathExamples.DependendRequestsExample(client).Wait();

            channel.ShutdownAsync().Wait();
        }
示例#6
0
        public static async Task DivManyExample(Math.MathClient client)
        {
            var divArgsList = new List <DivArgs>
            {
                new DivArgs {
                    Dividend = 10, Divisor = 3
                },
                new DivArgs {
                    Dividend = 100, Divisor = 21
                },
                new DivArgs {
                    Dividend = 7, Divisor = 2
                }
            };

            using (var call = client.DivMany())
            {
                await call.RequestStream.WriteAllAsync(divArgsList);

                Console.WriteLine("DivMany Result: " + string.Join("|", await call.ResponseStream.ToListAsync()));
            }
        }
示例#7
0
        public static async Task SumExample(Math.MathClient client)
        {
            var numbers = new List <Num>
            {
                new Num {
                    Num_ = 1
                },
                new Num {
                    Num_ = 2
                },
                new Num {
                    Num_ = 3
                }
            };

            using (var call = client.Sum())
            {
                await call.RequestStream.WriteAllAsync(numbers);

                Console.WriteLine("Sum Result: " + await call.ResponseAsync);
            }
        }
示例#8
0
        public static async Task DivAsyncExample(Math.MathClient client)
        {
            DivReply result = await client.DivAsync(new DivArgs { Dividend = 4, Divisor = 5 });

            Console.WriteLine("DivAsync Result: " + result);
        }