|  | @@ -1,5 +1,35 @@
 | 
	
		
			
				|  |  |  // Generated by the protocol buffer compiler.  DO NOT EDIT!
 | 
	
		
			
				|  |  |  // source: route_guide.proto
 | 
	
		
			
				|  |  | +// Original file comments:
 | 
	
		
			
				|  |  | +// Copyright 2015, Google Inc.
 | 
	
		
			
				|  |  | +// All rights reserved.
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +// Redistribution and use in source and binary forms, with or without
 | 
	
		
			
				|  |  | +// modification, are permitted provided that the following conditions are
 | 
	
		
			
				|  |  | +// met:
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//     * Redistributions of source code must retain the above copyright
 | 
	
		
			
				|  |  | +// notice, this list of conditions and the following disclaimer.
 | 
	
		
			
				|  |  | +//     * Redistributions in binary form must reproduce the above
 | 
	
		
			
				|  |  | +// copyright notice, this list of conditions and the following disclaimer
 | 
	
		
			
				|  |  | +// in the documentation and/or other materials provided with the
 | 
	
		
			
				|  |  | +// distribution.
 | 
	
		
			
				|  |  | +//     * Neither the name of Google Inc. nor the names of its
 | 
	
		
			
				|  |  | +// contributors may be used to endorse or promote products derived from
 | 
	
		
			
				|  |  | +// this software without specific prior written permission.
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 | 
	
		
			
				|  |  | +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 | 
	
		
			
				|  |  | +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 | 
	
		
			
				|  |  | +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 | 
	
		
			
				|  |  | +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 | 
	
		
			
				|  |  | +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 | 
	
		
			
				|  |  | +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 | 
	
		
			
				|  |  | +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 | 
	
		
			
				|  |  | +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 | 
	
		
			
				|  |  | +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 | 
	
		
			
				|  |  | +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  |  #region Designer generated code
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  using System;
 | 
	
	
		
			
				|  | @@ -8,6 +38,9 @@ using System.Threading.Tasks;
 | 
	
		
			
				|  |  |  using Grpc.Core;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  namespace Routeguide {
 | 
	
		
			
				|  |  | +  /// <summary>
 | 
	
		
			
				|  |  | +  ///  Interface exported by the server.
 | 
	
		
			
				|  |  | +  /// </summary>
 | 
	
		
			
				|  |  |    public static class RouteGuide
 | 
	
		
			
				|  |  |    {
 | 
	
		
			
				|  |  |      static readonly string __ServiceName = "routeguide.RouteGuide";
 | 
	
	
		
			
				|  | @@ -46,96 +79,339 @@ namespace Routeguide {
 | 
	
		
			
				|  |  |          __Marshaller_RouteNote,
 | 
	
		
			
				|  |  |          __Marshaller_RouteNote);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    // service descriptor
 | 
	
		
			
				|  |  | +    /// <summary>Service descriptor</summary>
 | 
	
		
			
				|  |  |      public static global::Google.Protobuf.Reflection.ServiceDescriptor Descriptor
 | 
	
		
			
				|  |  |      {
 | 
	
		
			
				|  |  |        get { return global::Routeguide.RouteGuideReflection.Descriptor.Services[0]; }
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    // client interface
 | 
	
		
			
				|  |  | +    /// <summary>Client for RouteGuide</summary>
 | 
	
		
			
				|  |  | +    [System.Obsolete("Client side interfaced will be removed in the next release. Use client class directly.")]
 | 
	
		
			
				|  |  |      public interface IRouteGuideClient
 | 
	
		
			
				|  |  |      {
 | 
	
		
			
				|  |  | +      /// <summary>
 | 
	
		
			
				|  |  | +      ///  A simple RPC.
 | 
	
		
			
				|  |  | +      ///
 | 
	
		
			
				|  |  | +      ///  Obtains the feature at a given position.
 | 
	
		
			
				|  |  | +      ///
 | 
	
		
			
				|  |  | +      ///  A feature with an empty name is returned if there's no feature at the given
 | 
	
		
			
				|  |  | +      ///  position.
 | 
	
		
			
				|  |  | +      /// </summary>
 | 
	
		
			
				|  |  |        global::Routeguide.Feature GetFeature(global::Routeguide.Point request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken));
 | 
	
		
			
				|  |  | +      /// <summary>
 | 
	
		
			
				|  |  | +      ///  A simple RPC.
 | 
	
		
			
				|  |  | +      ///
 | 
	
		
			
				|  |  | +      ///  Obtains the feature at a given position.
 | 
	
		
			
				|  |  | +      ///
 | 
	
		
			
				|  |  | +      ///  A feature with an empty name is returned if there's no feature at the given
 | 
	
		
			
				|  |  | +      ///  position.
 | 
	
		
			
				|  |  | +      /// </summary>
 | 
	
		
			
				|  |  |        global::Routeguide.Feature GetFeature(global::Routeguide.Point request, CallOptions options);
 | 
	
		
			
				|  |  | +      /// <summary>
 | 
	
		
			
				|  |  | +      ///  A simple RPC.
 | 
	
		
			
				|  |  | +      ///
 | 
	
		
			
				|  |  | +      ///  Obtains the feature at a given position.
 | 
	
		
			
				|  |  | +      ///
 | 
	
		
			
				|  |  | +      ///  A feature with an empty name is returned if there's no feature at the given
 | 
	
		
			
				|  |  | +      ///  position.
 | 
	
		
			
				|  |  | +      /// </summary>
 | 
	
		
			
				|  |  |        AsyncUnaryCall<global::Routeguide.Feature> GetFeatureAsync(global::Routeguide.Point request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken));
 | 
	
		
			
				|  |  | +      /// <summary>
 | 
	
		
			
				|  |  | +      ///  A simple RPC.
 | 
	
		
			
				|  |  | +      ///
 | 
	
		
			
				|  |  | +      ///  Obtains the feature at a given position.
 | 
	
		
			
				|  |  | +      ///
 | 
	
		
			
				|  |  | +      ///  A feature with an empty name is returned if there's no feature at the given
 | 
	
		
			
				|  |  | +      ///  position.
 | 
	
		
			
				|  |  | +      /// </summary>
 | 
	
		
			
				|  |  |        AsyncUnaryCall<global::Routeguide.Feature> GetFeatureAsync(global::Routeguide.Point request, CallOptions options);
 | 
	
		
			
				|  |  | +      /// <summary>
 | 
	
		
			
				|  |  | +      ///  A server-to-client streaming RPC.
 | 
	
		
			
				|  |  | +      ///
 | 
	
		
			
				|  |  | +      ///  Obtains the Features available within the given Rectangle.  Results are
 | 
	
		
			
				|  |  | +      ///  streamed rather than returned at once (e.g. in a response message with a
 | 
	
		
			
				|  |  | +      ///  repeated field), as the rectangle may cover a large area and contain a
 | 
	
		
			
				|  |  | +      ///  huge number of features.
 | 
	
		
			
				|  |  | +      /// </summary>
 | 
	
		
			
				|  |  |        AsyncServerStreamingCall<global::Routeguide.Feature> ListFeatures(global::Routeguide.Rectangle request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken));
 | 
	
		
			
				|  |  | +      /// <summary>
 | 
	
		
			
				|  |  | +      ///  A server-to-client streaming RPC.
 | 
	
		
			
				|  |  | +      ///
 | 
	
		
			
				|  |  | +      ///  Obtains the Features available within the given Rectangle.  Results are
 | 
	
		
			
				|  |  | +      ///  streamed rather than returned at once (e.g. in a response message with a
 | 
	
		
			
				|  |  | +      ///  repeated field), as the rectangle may cover a large area and contain a
 | 
	
		
			
				|  |  | +      ///  huge number of features.
 | 
	
		
			
				|  |  | +      /// </summary>
 | 
	
		
			
				|  |  |        AsyncServerStreamingCall<global::Routeguide.Feature> ListFeatures(global::Routeguide.Rectangle request, CallOptions options);
 | 
	
		
			
				|  |  | +      /// <summary>
 | 
	
		
			
				|  |  | +      ///  A client-to-server streaming RPC.
 | 
	
		
			
				|  |  | +      ///
 | 
	
		
			
				|  |  | +      ///  Accepts a stream of Points on a route being traversed, returning a
 | 
	
		
			
				|  |  | +      ///  RouteSummary when traversal is completed.
 | 
	
		
			
				|  |  | +      /// </summary>
 | 
	
		
			
				|  |  |        AsyncClientStreamingCall<global::Routeguide.Point, global::Routeguide.RouteSummary> RecordRoute(Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken));
 | 
	
		
			
				|  |  | +      /// <summary>
 | 
	
		
			
				|  |  | +      ///  A client-to-server streaming RPC.
 | 
	
		
			
				|  |  | +      ///
 | 
	
		
			
				|  |  | +      ///  Accepts a stream of Points on a route being traversed, returning a
 | 
	
		
			
				|  |  | +      ///  RouteSummary when traversal is completed.
 | 
	
		
			
				|  |  | +      /// </summary>
 | 
	
		
			
				|  |  |        AsyncClientStreamingCall<global::Routeguide.Point, global::Routeguide.RouteSummary> RecordRoute(CallOptions options);
 | 
	
		
			
				|  |  | +      /// <summary>
 | 
	
		
			
				|  |  | +      ///  A Bidirectional streaming RPC.
 | 
	
		
			
				|  |  | +      ///
 | 
	
		
			
				|  |  | +      ///  Accepts a stream of RouteNotes sent while a route is being traversed,
 | 
	
		
			
				|  |  | +      ///  while receiving other RouteNotes (e.g. from other users).
 | 
	
		
			
				|  |  | +      /// </summary>
 | 
	
		
			
				|  |  |        AsyncDuplexStreamingCall<global::Routeguide.RouteNote, global::Routeguide.RouteNote> RouteChat(Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken));
 | 
	
		
			
				|  |  | +      /// <summary>
 | 
	
		
			
				|  |  | +      ///  A Bidirectional streaming RPC.
 | 
	
		
			
				|  |  | +      ///
 | 
	
		
			
				|  |  | +      ///  Accepts a stream of RouteNotes sent while a route is being traversed,
 | 
	
		
			
				|  |  | +      ///  while receiving other RouteNotes (e.g. from other users).
 | 
	
		
			
				|  |  | +      /// </summary>
 | 
	
		
			
				|  |  |        AsyncDuplexStreamingCall<global::Routeguide.RouteNote, global::Routeguide.RouteNote> RouteChat(CallOptions options);
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    // server-side interface
 | 
	
		
			
				|  |  | +    /// <summary>Interface of server-side implementations of RouteGuide</summary>
 | 
	
		
			
				|  |  | +    [System.Obsolete("Service implementations should inherit from the generated abstract base class instead.")]
 | 
	
		
			
				|  |  |      public interface IRouteGuide
 | 
	
		
			
				|  |  |      {
 | 
	
		
			
				|  |  | -      Task<global::Routeguide.Feature> GetFeature(global::Routeguide.Point request, ServerCallContext context);
 | 
	
		
			
				|  |  | -      Task ListFeatures(global::Routeguide.Rectangle request, IServerStreamWriter<global::Routeguide.Feature> responseStream, ServerCallContext context);
 | 
	
		
			
				|  |  | -      Task<global::Routeguide.RouteSummary> RecordRoute(IAsyncStreamReader<global::Routeguide.Point> requestStream, ServerCallContext context);
 | 
	
		
			
				|  |  | -      Task RouteChat(IAsyncStreamReader<global::Routeguide.RouteNote> requestStream, IServerStreamWriter<global::Routeguide.RouteNote> responseStream, ServerCallContext context);
 | 
	
		
			
				|  |  | +      /// <summary>
 | 
	
		
			
				|  |  | +      ///  A simple RPC.
 | 
	
		
			
				|  |  | +      ///
 | 
	
		
			
				|  |  | +      ///  Obtains the feature at a given position.
 | 
	
		
			
				|  |  | +      ///
 | 
	
		
			
				|  |  | +      ///  A feature with an empty name is returned if there's no feature at the given
 | 
	
		
			
				|  |  | +      ///  position.
 | 
	
		
			
				|  |  | +      /// </summary>
 | 
	
		
			
				|  |  | +      global::System.Threading.Tasks.Task<global::Routeguide.Feature> GetFeature(global::Routeguide.Point request, ServerCallContext context);
 | 
	
		
			
				|  |  | +      /// <summary>
 | 
	
		
			
				|  |  | +      ///  A server-to-client streaming RPC.
 | 
	
		
			
				|  |  | +      ///
 | 
	
		
			
				|  |  | +      ///  Obtains the Features available within the given Rectangle.  Results are
 | 
	
		
			
				|  |  | +      ///  streamed rather than returned at once (e.g. in a response message with a
 | 
	
		
			
				|  |  | +      ///  repeated field), as the rectangle may cover a large area and contain a
 | 
	
		
			
				|  |  | +      ///  huge number of features.
 | 
	
		
			
				|  |  | +      /// </summary>
 | 
	
		
			
				|  |  | +      global::System.Threading.Tasks.Task ListFeatures(global::Routeguide.Rectangle request, IServerStreamWriter<global::Routeguide.Feature> responseStream, ServerCallContext context);
 | 
	
		
			
				|  |  | +      /// <summary>
 | 
	
		
			
				|  |  | +      ///  A client-to-server streaming RPC.
 | 
	
		
			
				|  |  | +      ///
 | 
	
		
			
				|  |  | +      ///  Accepts a stream of Points on a route being traversed, returning a
 | 
	
		
			
				|  |  | +      ///  RouteSummary when traversal is completed.
 | 
	
		
			
				|  |  | +      /// </summary>
 | 
	
		
			
				|  |  | +      global::System.Threading.Tasks.Task<global::Routeguide.RouteSummary> RecordRoute(IAsyncStreamReader<global::Routeguide.Point> requestStream, ServerCallContext context);
 | 
	
		
			
				|  |  | +      /// <summary>
 | 
	
		
			
				|  |  | +      ///  A Bidirectional streaming RPC.
 | 
	
		
			
				|  |  | +      ///
 | 
	
		
			
				|  |  | +      ///  Accepts a stream of RouteNotes sent while a route is being traversed,
 | 
	
		
			
				|  |  | +      ///  while receiving other RouteNotes (e.g. from other users).
 | 
	
		
			
				|  |  | +      /// </summary>
 | 
	
		
			
				|  |  | +      global::System.Threading.Tasks.Task RouteChat(IAsyncStreamReader<global::Routeguide.RouteNote> requestStream, IServerStreamWriter<global::Routeguide.RouteNote> responseStream, ServerCallContext context);
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    // client stub
 | 
	
		
			
				|  |  | -    public class RouteGuideClient : ClientBase, IRouteGuideClient
 | 
	
		
			
				|  |  | +    /// <summary>Base class for server-side implementations of RouteGuide</summary>
 | 
	
		
			
				|  |  | +    public abstract class RouteGuideBase
 | 
	
		
			
				|  |  | +    {
 | 
	
		
			
				|  |  | +      /// <summary>
 | 
	
		
			
				|  |  | +      ///  A simple RPC.
 | 
	
		
			
				|  |  | +      ///
 | 
	
		
			
				|  |  | +      ///  Obtains the feature at a given position.
 | 
	
		
			
				|  |  | +      ///
 | 
	
		
			
				|  |  | +      ///  A feature with an empty name is returned if there's no feature at the given
 | 
	
		
			
				|  |  | +      ///  position.
 | 
	
		
			
				|  |  | +      /// </summary>
 | 
	
		
			
				|  |  | +      public virtual global::System.Threading.Tasks.Task<global::Routeguide.Feature> GetFeature(global::Routeguide.Point request, ServerCallContext context)
 | 
	
		
			
				|  |  | +      {
 | 
	
		
			
				|  |  | +        throw new RpcException(new Status(StatusCode.Unimplemented, ""));
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      /// <summary>
 | 
	
		
			
				|  |  | +      ///  A server-to-client streaming RPC.
 | 
	
		
			
				|  |  | +      ///
 | 
	
		
			
				|  |  | +      ///  Obtains the Features available within the given Rectangle.  Results are
 | 
	
		
			
				|  |  | +      ///  streamed rather than returned at once (e.g. in a response message with a
 | 
	
		
			
				|  |  | +      ///  repeated field), as the rectangle may cover a large area and contain a
 | 
	
		
			
				|  |  | +      ///  huge number of features.
 | 
	
		
			
				|  |  | +      /// </summary>
 | 
	
		
			
				|  |  | +      public virtual global::System.Threading.Tasks.Task ListFeatures(global::Routeguide.Rectangle request, IServerStreamWriter<global::Routeguide.Feature> responseStream, ServerCallContext context)
 | 
	
		
			
				|  |  | +      {
 | 
	
		
			
				|  |  | +        throw new RpcException(new Status(StatusCode.Unimplemented, ""));
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      /// <summary>
 | 
	
		
			
				|  |  | +      ///  A client-to-server streaming RPC.
 | 
	
		
			
				|  |  | +      ///
 | 
	
		
			
				|  |  | +      ///  Accepts a stream of Points on a route being traversed, returning a
 | 
	
		
			
				|  |  | +      ///  RouteSummary when traversal is completed.
 | 
	
		
			
				|  |  | +      /// </summary>
 | 
	
		
			
				|  |  | +      public virtual global::System.Threading.Tasks.Task<global::Routeguide.RouteSummary> RecordRoute(IAsyncStreamReader<global::Routeguide.Point> requestStream, ServerCallContext context)
 | 
	
		
			
				|  |  | +      {
 | 
	
		
			
				|  |  | +        throw new RpcException(new Status(StatusCode.Unimplemented, ""));
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      /// <summary>
 | 
	
		
			
				|  |  | +      ///  A Bidirectional streaming RPC.
 | 
	
		
			
				|  |  | +      ///
 | 
	
		
			
				|  |  | +      ///  Accepts a stream of RouteNotes sent while a route is being traversed,
 | 
	
		
			
				|  |  | +      ///  while receiving other RouteNotes (e.g. from other users).
 | 
	
		
			
				|  |  | +      /// </summary>
 | 
	
		
			
				|  |  | +      public virtual global::System.Threading.Tasks.Task RouteChat(IAsyncStreamReader<global::Routeguide.RouteNote> requestStream, IServerStreamWriter<global::Routeguide.RouteNote> responseStream, ServerCallContext context)
 | 
	
		
			
				|  |  | +      {
 | 
	
		
			
				|  |  | +        throw new RpcException(new Status(StatusCode.Unimplemented, ""));
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    /// <summary>Client for RouteGuide</summary>
 | 
	
		
			
				|  |  | +    #pragma warning disable 0618
 | 
	
		
			
				|  |  | +    public class RouteGuideClient : ClientBase<RouteGuideClient>, IRouteGuideClient
 | 
	
		
			
				|  |  | +    #pragma warning restore 0618
 | 
	
		
			
				|  |  |      {
 | 
	
		
			
				|  |  |        public RouteGuideClient(Channel channel) : base(channel)
 | 
	
		
			
				|  |  |        {
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  | -      public global::Routeguide.Feature GetFeature(global::Routeguide.Point request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
 | 
	
		
			
				|  |  | +      public RouteGuideClient(CallInvoker callInvoker) : base(callInvoker)
 | 
	
		
			
				|  |  | +      {
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +      ///<summary>Protected parameterless constructor to allow creation of test doubles.</summary>
 | 
	
		
			
				|  |  | +      protected RouteGuideClient() : base()
 | 
	
		
			
				|  |  | +      {
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +      ///<summary>Protected constructor to allow creation of configured clients.</summary>
 | 
	
		
			
				|  |  | +      protected RouteGuideClient(ClientBaseConfiguration configuration) : base(configuration)
 | 
	
		
			
				|  |  |        {
 | 
	
		
			
				|  |  | -        var call = CreateCall(__Method_GetFeature, new CallOptions(headers, deadline, cancellationToken));
 | 
	
		
			
				|  |  | -        return Calls.BlockingUnaryCall(call, request);
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  | -      public global::Routeguide.Feature GetFeature(global::Routeguide.Point request, CallOptions options)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      /// <summary>
 | 
	
		
			
				|  |  | +      ///  A simple RPC.
 | 
	
		
			
				|  |  | +      ///
 | 
	
		
			
				|  |  | +      ///  Obtains the feature at a given position.
 | 
	
		
			
				|  |  | +      ///
 | 
	
		
			
				|  |  | +      ///  A feature with an empty name is returned if there's no feature at the given
 | 
	
		
			
				|  |  | +      ///  position.
 | 
	
		
			
				|  |  | +      /// </summary>
 | 
	
		
			
				|  |  | +      public virtual global::Routeguide.Feature GetFeature(global::Routeguide.Point request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
 | 
	
		
			
				|  |  |        {
 | 
	
		
			
				|  |  | -        var call = CreateCall(__Method_GetFeature, options);
 | 
	
		
			
				|  |  | -        return Calls.BlockingUnaryCall(call, request);
 | 
	
		
			
				|  |  | +        return GetFeature(request, new CallOptions(headers, deadline, cancellationToken));
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  | -      public AsyncUnaryCall<global::Routeguide.Feature> GetFeatureAsync(global::Routeguide.Point request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
 | 
	
		
			
				|  |  | +      /// <summary>
 | 
	
		
			
				|  |  | +      ///  A simple RPC.
 | 
	
		
			
				|  |  | +      ///
 | 
	
		
			
				|  |  | +      ///  Obtains the feature at a given position.
 | 
	
		
			
				|  |  | +      ///
 | 
	
		
			
				|  |  | +      ///  A feature with an empty name is returned if there's no feature at the given
 | 
	
		
			
				|  |  | +      ///  position.
 | 
	
		
			
				|  |  | +      /// </summary>
 | 
	
		
			
				|  |  | +      public virtual global::Routeguide.Feature GetFeature(global::Routeguide.Point request, CallOptions options)
 | 
	
		
			
				|  |  |        {
 | 
	
		
			
				|  |  | -        var call = CreateCall(__Method_GetFeature, new CallOptions(headers, deadline, cancellationToken));
 | 
	
		
			
				|  |  | -        return Calls.AsyncUnaryCall(call, request);
 | 
	
		
			
				|  |  | +        return CallInvoker.BlockingUnaryCall(__Method_GetFeature, null, options, request);
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  | -      public AsyncUnaryCall<global::Routeguide.Feature> GetFeatureAsync(global::Routeguide.Point request, CallOptions options)
 | 
	
		
			
				|  |  | +      /// <summary>
 | 
	
		
			
				|  |  | +      ///  A simple RPC.
 | 
	
		
			
				|  |  | +      ///
 | 
	
		
			
				|  |  | +      ///  Obtains the feature at a given position.
 | 
	
		
			
				|  |  | +      ///
 | 
	
		
			
				|  |  | +      ///  A feature with an empty name is returned if there's no feature at the given
 | 
	
		
			
				|  |  | +      ///  position.
 | 
	
		
			
				|  |  | +      /// </summary>
 | 
	
		
			
				|  |  | +      public virtual AsyncUnaryCall<global::Routeguide.Feature> GetFeatureAsync(global::Routeguide.Point request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
 | 
	
		
			
				|  |  |        {
 | 
	
		
			
				|  |  | -        var call = CreateCall(__Method_GetFeature, options);
 | 
	
		
			
				|  |  | -        return Calls.AsyncUnaryCall(call, request);
 | 
	
		
			
				|  |  | +        return GetFeatureAsync(request, new CallOptions(headers, deadline, cancellationToken));
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  | -      public AsyncServerStreamingCall<global::Routeguide.Feature> ListFeatures(global::Routeguide.Rectangle request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
 | 
	
		
			
				|  |  | +      /// <summary>
 | 
	
		
			
				|  |  | +      ///  A simple RPC.
 | 
	
		
			
				|  |  | +      ///
 | 
	
		
			
				|  |  | +      ///  Obtains the feature at a given position.
 | 
	
		
			
				|  |  | +      ///
 | 
	
		
			
				|  |  | +      ///  A feature with an empty name is returned if there's no feature at the given
 | 
	
		
			
				|  |  | +      ///  position.
 | 
	
		
			
				|  |  | +      /// </summary>
 | 
	
		
			
				|  |  | +      public virtual AsyncUnaryCall<global::Routeguide.Feature> GetFeatureAsync(global::Routeguide.Point request, CallOptions options)
 | 
	
		
			
				|  |  |        {
 | 
	
		
			
				|  |  | -        var call = CreateCall(__Method_ListFeatures, new CallOptions(headers, deadline, cancellationToken));
 | 
	
		
			
				|  |  | -        return Calls.AsyncServerStreamingCall(call, request);
 | 
	
		
			
				|  |  | +        return CallInvoker.AsyncUnaryCall(__Method_GetFeature, null, options, request);
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  | -      public AsyncServerStreamingCall<global::Routeguide.Feature> ListFeatures(global::Routeguide.Rectangle request, CallOptions options)
 | 
	
		
			
				|  |  | +      /// <summary>
 | 
	
		
			
				|  |  | +      ///  A server-to-client streaming RPC.
 | 
	
		
			
				|  |  | +      ///
 | 
	
		
			
				|  |  | +      ///  Obtains the Features available within the given Rectangle.  Results are
 | 
	
		
			
				|  |  | +      ///  streamed rather than returned at once (e.g. in a response message with a
 | 
	
		
			
				|  |  | +      ///  repeated field), as the rectangle may cover a large area and contain a
 | 
	
		
			
				|  |  | +      ///  huge number of features.
 | 
	
		
			
				|  |  | +      /// </summary>
 | 
	
		
			
				|  |  | +      public virtual AsyncServerStreamingCall<global::Routeguide.Feature> ListFeatures(global::Routeguide.Rectangle request, Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
 | 
	
		
			
				|  |  |        {
 | 
	
		
			
				|  |  | -        var call = CreateCall(__Method_ListFeatures, options);
 | 
	
		
			
				|  |  | -        return Calls.AsyncServerStreamingCall(call, request);
 | 
	
		
			
				|  |  | +        return ListFeatures(request, new CallOptions(headers, deadline, cancellationToken));
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  | -      public AsyncClientStreamingCall<global::Routeguide.Point, global::Routeguide.RouteSummary> RecordRoute(Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
 | 
	
		
			
				|  |  | +      /// <summary>
 | 
	
		
			
				|  |  | +      ///  A server-to-client streaming RPC.
 | 
	
		
			
				|  |  | +      ///
 | 
	
		
			
				|  |  | +      ///  Obtains the Features available within the given Rectangle.  Results are
 | 
	
		
			
				|  |  | +      ///  streamed rather than returned at once (e.g. in a response message with a
 | 
	
		
			
				|  |  | +      ///  repeated field), as the rectangle may cover a large area and contain a
 | 
	
		
			
				|  |  | +      ///  huge number of features.
 | 
	
		
			
				|  |  | +      /// </summary>
 | 
	
		
			
				|  |  | +      public virtual AsyncServerStreamingCall<global::Routeguide.Feature> ListFeatures(global::Routeguide.Rectangle request, CallOptions options)
 | 
	
		
			
				|  |  |        {
 | 
	
		
			
				|  |  | -        var call = CreateCall(__Method_RecordRoute, new CallOptions(headers, deadline, cancellationToken));
 | 
	
		
			
				|  |  | -        return Calls.AsyncClientStreamingCall(call);
 | 
	
		
			
				|  |  | +        return CallInvoker.AsyncServerStreamingCall(__Method_ListFeatures, null, options, request);
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  | -      public AsyncClientStreamingCall<global::Routeguide.Point, global::Routeguide.RouteSummary> RecordRoute(CallOptions options)
 | 
	
		
			
				|  |  | +      /// <summary>
 | 
	
		
			
				|  |  | +      ///  A client-to-server streaming RPC.
 | 
	
		
			
				|  |  | +      ///
 | 
	
		
			
				|  |  | +      ///  Accepts a stream of Points on a route being traversed, returning a
 | 
	
		
			
				|  |  | +      ///  RouteSummary when traversal is completed.
 | 
	
		
			
				|  |  | +      /// </summary>
 | 
	
		
			
				|  |  | +      public virtual AsyncClientStreamingCall<global::Routeguide.Point, global::Routeguide.RouteSummary> RecordRoute(Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
 | 
	
		
			
				|  |  |        {
 | 
	
		
			
				|  |  | -        var call = CreateCall(__Method_RecordRoute, options);
 | 
	
		
			
				|  |  | -        return Calls.AsyncClientStreamingCall(call);
 | 
	
		
			
				|  |  | +        return RecordRoute(new CallOptions(headers, deadline, cancellationToken));
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  | -      public AsyncDuplexStreamingCall<global::Routeguide.RouteNote, global::Routeguide.RouteNote> RouteChat(Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
 | 
	
		
			
				|  |  | +      /// <summary>
 | 
	
		
			
				|  |  | +      ///  A client-to-server streaming RPC.
 | 
	
		
			
				|  |  | +      ///
 | 
	
		
			
				|  |  | +      ///  Accepts a stream of Points on a route being traversed, returning a
 | 
	
		
			
				|  |  | +      ///  RouteSummary when traversal is completed.
 | 
	
		
			
				|  |  | +      /// </summary>
 | 
	
		
			
				|  |  | +      public virtual AsyncClientStreamingCall<global::Routeguide.Point, global::Routeguide.RouteSummary> RecordRoute(CallOptions options)
 | 
	
		
			
				|  |  |        {
 | 
	
		
			
				|  |  | -        var call = CreateCall(__Method_RouteChat, new CallOptions(headers, deadline, cancellationToken));
 | 
	
		
			
				|  |  | -        return Calls.AsyncDuplexStreamingCall(call);
 | 
	
		
			
				|  |  | +        return CallInvoker.AsyncClientStreamingCall(__Method_RecordRoute, null, options);
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  | -      public AsyncDuplexStreamingCall<global::Routeguide.RouteNote, global::Routeguide.RouteNote> RouteChat(CallOptions options)
 | 
	
		
			
				|  |  | +      /// <summary>
 | 
	
		
			
				|  |  | +      ///  A Bidirectional streaming RPC.
 | 
	
		
			
				|  |  | +      ///
 | 
	
		
			
				|  |  | +      ///  Accepts a stream of RouteNotes sent while a route is being traversed,
 | 
	
		
			
				|  |  | +      ///  while receiving other RouteNotes (e.g. from other users).
 | 
	
		
			
				|  |  | +      /// </summary>
 | 
	
		
			
				|  |  | +      public virtual AsyncDuplexStreamingCall<global::Routeguide.RouteNote, global::Routeguide.RouteNote> RouteChat(Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
 | 
	
		
			
				|  |  |        {
 | 
	
		
			
				|  |  | -        var call = CreateCall(__Method_RouteChat, options);
 | 
	
		
			
				|  |  | -        return Calls.AsyncDuplexStreamingCall(call);
 | 
	
		
			
				|  |  | +        return RouteChat(new CallOptions(headers, deadline, cancellationToken));
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  | +      /// <summary>
 | 
	
		
			
				|  |  | +      ///  A Bidirectional streaming RPC.
 | 
	
		
			
				|  |  | +      ///
 | 
	
		
			
				|  |  | +      ///  Accepts a stream of RouteNotes sent while a route is being traversed,
 | 
	
		
			
				|  |  | +      ///  while receiving other RouteNotes (e.g. from other users).
 | 
	
		
			
				|  |  | +      /// </summary>
 | 
	
		
			
				|  |  | +      public virtual AsyncDuplexStreamingCall<global::Routeguide.RouteNote, global::Routeguide.RouteNote> RouteChat(CallOptions options)
 | 
	
		
			
				|  |  | +      {
 | 
	
		
			
				|  |  | +        return CallInvoker.AsyncDuplexStreamingCall(__Method_RouteChat, null, options);
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +      protected override RouteGuideClient NewInstance(ClientBaseConfiguration configuration)
 | 
	
		
			
				|  |  | +      {
 | 
	
		
			
				|  |  | +        return new RouteGuideClient(configuration);
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    /// <summary>Creates a new client for RouteGuide</summary>
 | 
	
		
			
				|  |  | +    public static RouteGuideClient NewClient(Channel channel)
 | 
	
		
			
				|  |  | +    {
 | 
	
		
			
				|  |  | +      return new RouteGuideClient(channel);
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    // creates service definition that can be registered with a server
 | 
	
		
			
				|  |  | +    /// <summary>Creates service definition that can be registered with a server</summary>
 | 
	
		
			
				|  |  | +    #pragma warning disable 0618
 | 
	
		
			
				|  |  |      public static ServerServiceDefinition BindService(IRouteGuide serviceImpl)
 | 
	
		
			
				|  |  | +    #pragma warning restore 0618
 | 
	
		
			
				|  |  |      {
 | 
	
		
			
				|  |  |        return ServerServiceDefinition.CreateBuilder(__ServiceName)
 | 
	
		
			
				|  |  |            .AddMethod(__Method_GetFeature, serviceImpl.GetFeature)
 | 
	
	
		
			
				|  | @@ -144,10 +420,16 @@ namespace Routeguide {
 | 
	
		
			
				|  |  |            .AddMethod(__Method_RouteChat, serviceImpl.RouteChat).Build();
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    // creates a new client
 | 
	
		
			
				|  |  | -    public static RouteGuideClient NewClient(Channel channel)
 | 
	
		
			
				|  |  | +    /// <summary>Creates service definition that can be registered with a server</summary>
 | 
	
		
			
				|  |  | +    #pragma warning disable 0618
 | 
	
		
			
				|  |  | +    public static ServerServiceDefinition BindService(RouteGuideBase serviceImpl)
 | 
	
		
			
				|  |  | +    #pragma warning restore 0618
 | 
	
		
			
				|  |  |      {
 | 
	
		
			
				|  |  | -      return new RouteGuideClient(channel);
 | 
	
		
			
				|  |  | +      return ServerServiceDefinition.CreateBuilder(__ServiceName)
 | 
	
		
			
				|  |  | +          .AddMethod(__Method_GetFeature, serviceImpl.GetFeature)
 | 
	
		
			
				|  |  | +          .AddMethod(__Method_ListFeatures, serviceImpl.ListFeatures)
 | 
	
		
			
				|  |  | +          .AddMethod(__Method_RecordRoute, serviceImpl.RecordRoute)
 | 
	
		
			
				|  |  | +          .AddMethod(__Method_RouteChat, serviceImpl.RouteChat).Build();
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    }
 |