// <auto-generated>
//     Generated by the protocol buffer compiler.  DO NOT EDIT!
//     source: greet.proto
// </auto-generated>
#pragma warning disable 0414, 1591, 8981, 0612
#region Designer generated code

using grpc = global::Grpc.Core;

public static partial class Greeter
{
  static readonly string __ServiceName = "Greeter";

  [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
  static void __Helper_SerializeMessage(global::Google.Protobuf.IMessage message, grpc::SerializationContext context)
  {
    #if !GRPC_DISABLE_PROTOBUF_BUFFER_SERIALIZATION
    if (message is global::Google.Protobuf.IBufferMessage)
    {
      context.SetPayloadLength(message.CalculateSize());
      global::Google.Protobuf.MessageExtensions.WriteTo(message, context.GetBufferWriter());
      context.Complete();
      return;
    }
    #endif
    context.Complete(global::Google.Protobuf.MessageExtensions.ToByteArray(message));
  }

  [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
  static class __Helper_MessageCache<T>
  {
    public static readonly bool IsBufferMessage = global::System.Reflection.IntrospectionExtensions.GetTypeInfo(typeof(global::Google.Protobuf.IBufferMessage)).IsAssignableFrom(typeof(T));
  }

  [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
  static T __Helper_DeserializeMessage<T>(grpc::DeserializationContext context, global::Google.Protobuf.MessageParser<T> parser) where T : global::Google.Protobuf.IMessage<T>
  {
    #if !GRPC_DISABLE_PROTOBUF_BUFFER_SERIALIZATION
    if (__Helper_MessageCache<T>.IsBufferMessage)
    {
      return parser.ParseFrom(context.PayloadAsReadOnlySequence());
    }
    #endif
    return parser.ParseFrom(context.PayloadAsNewBuffer());
  }

  [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
  static readonly grpc::Marshaller<global::TestAsyncRequest> __Marshaller_TestAsyncRequest = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::TestAsyncRequest.Parser));
  [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
  static readonly grpc::Marshaller<global::TestAsyncReply> __Marshaller_TestAsyncReply = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::TestAsyncReply.Parser));

  [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
  static readonly grpc::Method<global::TestAsyncRequest, global::TestAsyncReply> __Method_SayHello = new grpc::Method<global::TestAsyncRequest, global::TestAsyncReply>(
      grpc::MethodType.Unary,
      __ServiceName,
      "SayHello",
      __Marshaller_TestAsyncRequest,
      __Marshaller_TestAsyncReply);

  [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
  static readonly grpc::Method<global::TestAsyncRequest, global::TestAsyncReply> __Method_SayHelloAsync = new grpc::Method<global::TestAsyncRequest, global::TestAsyncReply>(
      grpc::MethodType.Unary,
      __ServiceName,
      "SayHelloAsync",
      __Marshaller_TestAsyncRequest,
      __Marshaller_TestAsyncReply);

  [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
  static readonly grpc::Method<global::TestAsyncRequest, global::TestAsyncReply> __Method_LotsOfReplies = new grpc::Method<global::TestAsyncRequest, global::TestAsyncReply>(
      grpc::MethodType.ServerStreaming,
      __ServiceName,
      "LotsOfReplies",
      __Marshaller_TestAsyncRequest,
      __Marshaller_TestAsyncReply);

  [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
  static readonly grpc::Method<global::TestAsyncRequest, global::TestAsyncReply> __Method_LotsOfGreetings = new grpc::Method<global::TestAsyncRequest, global::TestAsyncReply>(
      grpc::MethodType.ClientStreaming,
      __ServiceName,
      "LotsOfGreetings",
      __Marshaller_TestAsyncRequest,
      __Marshaller_TestAsyncReply);

  [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
  static readonly grpc::Method<global::TestAsyncRequest, global::TestAsyncReply> __Method_BidiHello = new grpc::Method<global::TestAsyncRequest, global::TestAsyncReply>(
      grpc::MethodType.DuplexStreaming,
      __ServiceName,
      "BidiHello",
      __Marshaller_TestAsyncRequest,
      __Marshaller_TestAsyncReply);

  [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
  static readonly grpc::Method<global::TestAsyncRequest, global::TestAsyncReply> __Method_OldHello = new grpc::Method<global::TestAsyncRequest, global::TestAsyncReply>(
      grpc::MethodType.Unary,
      __ServiceName,
      "OldHello",
      __Marshaller_TestAsyncRequest,
      __Marshaller_TestAsyncReply);

  /// <summary>Service descriptor</summary>
  public static global::Google.Protobuf.Reflection.ServiceDescriptor Descriptor
  {
    get { return global::GreetReflection.Descriptor.Services[0]; }
  }

  /// <summary>Base class for server-side implementations of Greeter</summary>
  [grpc::BindServiceMethod(typeof(Greeter), "BindService")]
  public abstract partial class GreeterBase
  {
    /// <summary>
    /// Standard unary method
    /// </summary>
    /// <param name="request">The request received from the client.</param>
    /// <param name="context">The context of the server-side call handler being invoked.</param>
    /// <returns>The response to send back to the client (wrapped by a task).</returns>
    [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
    public virtual global::System.Threading.Tasks.Task<global::TestAsyncReply> SayHelloAsync(global::TestAsyncRequest request, grpc::ServerCallContext context)
    {
      throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
    }

    /// <summary>
    /// Method that already ends with Async
    /// </summary>
    /// <param name="request">The request received from the client.</param>
    /// <param name="context">The context of the server-side call handler being invoked.</param>
    /// <returns>The response to send back to the client (wrapped by a task).</returns>
    [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
    public virtual global::System.Threading.Tasks.Task<global::TestAsyncReply> SayHelloAsync(global::TestAsyncRequest request, grpc::ServerCallContext context)
    {
      throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
    }

    /// <summary>
    /// Server streaming
    /// </summary>
    /// <param name="request">The request received from the client.</param>
    /// <param name="responseStream">Used for sending responses back to the client.</param>
    /// <param name="context">The context of the server-side call handler being invoked.</param>
    /// <returns>A task indicating completion of the handler.</returns>
    [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
    public virtual global::System.Threading.Tasks.Task LotsOfReplies(global::TestAsyncRequest request, grpc::IServerStreamWriter<global::TestAsyncReply> responseStream, grpc::ServerCallContext context)
    {
      throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
    }

    /// <summary>
    /// Client streaming
    /// </summary>
    /// <param name="requestStream">Used for reading requests from the client.</param>
    /// <param name="context">The context of the server-side call handler being invoked.</param>
    /// <returns>The response to send back to the client (wrapped by a task).</returns>
    [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
    public virtual global::System.Threading.Tasks.Task<global::TestAsyncReply> LotsOfGreetings(grpc::IAsyncStreamReader<global::TestAsyncRequest> requestStream, grpc::ServerCallContext context)
    {
      throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
    }

    /// <summary>
    /// Bidirectional streaming
    /// </summary>
    /// <param name="requestStream">Used for reading requests from the client.</param>
    /// <param name="responseStream">Used for sending responses back to the client.</param>
    /// <param name="context">The context of the server-side call handler being invoked.</param>
    /// <returns>A task indicating completion of the handler.</returns>
    [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
    public virtual global::System.Threading.Tasks.Task BidiHello(grpc::IAsyncStreamReader<global::TestAsyncRequest> requestStream, grpc::IServerStreamWriter<global::TestAsyncReply> responseStream, grpc::ServerCallContext context)
    {
      throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
    }

    /// <summary>
    /// Deprecated method
    /// </summary>
    /// <param name="request">The request received from the client.</param>
    /// <param name="context">The context of the server-side call handler being invoked.</param>
    /// <returns>The response to send back to the client (wrapped by a task).</returns>
    [global::System.ObsoleteAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
    public virtual global::System.Threading.Tasks.Task<global::TestAsyncReply> OldHelloAsync(global::TestAsyncRequest request, grpc::ServerCallContext context)
    {
      throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
    }

  }

  /// <summary>Client for Greeter</summary>
  public partial class GreeterClient : grpc::ClientBase<GreeterClient>
  {
    /// <summary>Creates a new client for Greeter</summary>
    /// <param name="channel">The channel to use to make remote calls.</param>
    [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
    public GreeterClient(grpc::ChannelBase channel) : base(channel)
    {
    }
    /// <summary>Creates a new client for Greeter that uses a custom <c>CallInvoker</c>.</summary>
    /// <param name="callInvoker">The callInvoker to use to make remote calls.</param>
    [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
    public GreeterClient(grpc::CallInvoker callInvoker) : base(callInvoker)
    {
    }
    /// <summary>Protected parameterless constructor to allow creation of test doubles.</summary>
    [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
    protected GreeterClient() : base()
    {
    }
    /// <summary>Protected constructor to allow creation of configured clients.</summary>
    /// <param name="configuration">The client configuration.</param>
    [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
    protected GreeterClient(ClientBaseConfiguration configuration) : base(configuration)
    {
    }

    /// <summary>
    /// Standard unary method
    /// </summary>
    /// <param name="request">The request to send to the server.</param>
    /// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
    /// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
    /// <param name="cancellationToken">An optional token for canceling the call.</param>
    /// <returns>The response received from the server.</returns>
    [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
    public virtual global::TestAsyncReply SayHello(global::TestAsyncRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
    {
      return SayHello(request, new grpc::CallOptions(headers, deadline, cancellationToken));
    }
    /// <summary>
    /// Standard unary method
    /// </summary>
    /// <param name="request">The request to send to the server.</param>
    /// <param name="options">The options for the call.</param>
    /// <returns>The response received from the server.</returns>
    [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
    public virtual global::TestAsyncReply SayHello(global::TestAsyncRequest request, grpc::CallOptions options)
    {
      return CallInvoker.BlockingUnaryCall(__Method_SayHello, null, options, request);
    }
    /// <summary>
    /// Standard unary method
    /// </summary>
    /// <param name="request">The request to send to the server.</param>
    /// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
    /// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
    /// <param name="cancellationToken">An optional token for canceling the call.</param>
    /// <returns>The call object.</returns>
    [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
    public virtual grpc::AsyncUnaryCall<global::TestAsyncReply> SayHelloAsync(global::TestAsyncRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
    {
      return SayHelloAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken));
    }
    /// <summary>
    /// Standard unary method
    /// </summary>
    /// <param name="request">The request to send to the server.</param>
    /// <param name="options">The options for the call.</param>
    /// <returns>The call object.</returns>
    [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
    public virtual grpc::AsyncUnaryCall<global::TestAsyncReply> SayHelloAsync(global::TestAsyncRequest request, grpc::CallOptions options)
    {
      return CallInvoker.AsyncUnaryCall(__Method_SayHello, null, options, request);
    }
    /// <summary>
    /// Method that already ends with Async
    /// </summary>
    /// <param name="request">The request to send to the server.</param>
    /// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
    /// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
    /// <param name="cancellationToken">An optional token for canceling the call.</param>
    /// <returns>The response received from the server.</returns>
    [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
    public virtual global::TestAsyncReply SayHelloAsync(global::TestAsyncRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
    {
      return SayHelloAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken));
    }
    /// <summary>
    /// Method that already ends with Async
    /// </summary>
    /// <param name="request">The request to send to the server.</param>
    /// <param name="options">The options for the call.</param>
    /// <returns>The response received from the server.</returns>
    [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
    public virtual global::TestAsyncReply SayHelloAsync(global::TestAsyncRequest request, grpc::CallOptions options)
    {
      return CallInvoker.BlockingUnaryCall(__Method_SayHelloAsync, null, options, request);
    }
    /// <summary>
    /// Method that already ends with Async
    /// </summary>
    /// <param name="request">The request to send to the server.</param>
    /// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
    /// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
    /// <param name="cancellationToken">An optional token for canceling the call.</param>
    /// <returns>The call object.</returns>
    [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
    public virtual grpc::AsyncUnaryCall<global::TestAsyncReply> SayHelloAsyncAsync(global::TestAsyncRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
    {
      return SayHelloAsyncAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken));
    }
    /// <summary>
    /// Method that already ends with Async
    /// </summary>
    /// <param name="request">The request to send to the server.</param>
    /// <param name="options">The options for the call.</param>
    /// <returns>The call object.</returns>
    [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
    public virtual grpc::AsyncUnaryCall<global::TestAsyncReply> SayHelloAsyncAsync(global::TestAsyncRequest request, grpc::CallOptions options)
    {
      return CallInvoker.AsyncUnaryCall(__Method_SayHelloAsync, null, options, request);
    }
    /// <summary>
    /// Server streaming
    /// </summary>
    /// <param name="request">The request to send to the server.</param>
    /// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
    /// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
    /// <param name="cancellationToken">An optional token for canceling the call.</param>
    /// <returns>The call object.</returns>
    [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
    public virtual grpc::AsyncServerStreamingCall<global::TestAsyncReply> LotsOfReplies(global::TestAsyncRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
    {
      return LotsOfReplies(request, new grpc::CallOptions(headers, deadline, cancellationToken));
    }
    /// <summary>
    /// Server streaming
    /// </summary>
    /// <param name="request">The request to send to the server.</param>
    /// <param name="options">The options for the call.</param>
    /// <returns>The call object.</returns>
    [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
    public virtual grpc::AsyncServerStreamingCall<global::TestAsyncReply> LotsOfReplies(global::TestAsyncRequest request, grpc::CallOptions options)
    {
      return CallInvoker.AsyncServerStreamingCall(__Method_LotsOfReplies, null, options, request);
    }
    /// <summary>
    /// Client streaming
    /// </summary>
    /// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
    /// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
    /// <param name="cancellationToken">An optional token for canceling the call.</param>
    /// <returns>The call object.</returns>
    [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
    public virtual grpc::AsyncClientStreamingCall<global::TestAsyncRequest, global::TestAsyncReply> LotsOfGreetings(grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
    {
      return LotsOfGreetings(new grpc::CallOptions(headers, deadline, cancellationToken));
    }
    /// <summary>
    /// Client streaming
    /// </summary>
    /// <param name="options">The options for the call.</param>
    /// <returns>The call object.</returns>
    [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
    public virtual grpc::AsyncClientStreamingCall<global::TestAsyncRequest, global::TestAsyncReply> LotsOfGreetings(grpc::CallOptions options)
    {
      return CallInvoker.AsyncClientStreamingCall(__Method_LotsOfGreetings, null, options);
    }
    /// <summary>
    /// Bidirectional streaming
    /// </summary>
    /// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
    /// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
    /// <param name="cancellationToken">An optional token for canceling the call.</param>
    /// <returns>The call object.</returns>
    [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
    public virtual grpc::AsyncDuplexStreamingCall<global::TestAsyncRequest, global::TestAsyncReply> BidiHello(grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
    {
      return BidiHello(new grpc::CallOptions(headers, deadline, cancellationToken));
    }
    /// <summary>
    /// Bidirectional streaming
    /// </summary>
    /// <param name="options">The options for the call.</param>
    /// <returns>The call object.</returns>
    [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
    public virtual grpc::AsyncDuplexStreamingCall<global::TestAsyncRequest, global::TestAsyncReply> BidiHello(grpc::CallOptions options)
    {
      return CallInvoker.AsyncDuplexStreamingCall(__Method_BidiHello, null, options);
    }
    /// <summary>
    /// Deprecated method
    /// </summary>
    /// <param name="request">The request to send to the server.</param>
    /// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
    /// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
    /// <param name="cancellationToken">An optional token for canceling the call.</param>
    /// <returns>The response received from the server.</returns>
    [global::System.ObsoleteAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
    public virtual global::TestAsyncReply OldHello(global::TestAsyncRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
    {
      return OldHello(request, new grpc::CallOptions(headers, deadline, cancellationToken));
    }
    /// <summary>
    /// Deprecated method
    /// </summary>
    /// <param name="request">The request to send to the server.</param>
    /// <param name="options">The options for the call.</param>
    /// <returns>The response received from the server.</returns>
    [global::System.ObsoleteAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
    public virtual global::TestAsyncReply OldHello(global::TestAsyncRequest request, grpc::CallOptions options)
    {
      return CallInvoker.BlockingUnaryCall(__Method_OldHello, null, options, request);
    }
    /// <summary>
    /// Deprecated method
    /// </summary>
    /// <param name="request">The request to send to the server.</param>
    /// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
    /// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
    /// <param name="cancellationToken">An optional token for canceling the call.</param>
    /// <returns>The call object.</returns>
    [global::System.ObsoleteAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
    public virtual grpc::AsyncUnaryCall<global::TestAsyncReply> OldHelloAsync(global::TestAsyncRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
    {
      return OldHelloAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken));
    }
    /// <summary>
    /// Deprecated method
    /// </summary>
    /// <param name="request">The request to send to the server.</param>
    /// <param name="options">The options for the call.</param>
    /// <returns>The call object.</returns>
    [global::System.ObsoleteAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
    public virtual grpc::AsyncUnaryCall<global::TestAsyncReply> OldHelloAsync(global::TestAsyncRequest request, grpc::CallOptions options)
    {
      return CallInvoker.AsyncUnaryCall(__Method_OldHello, null, options, request);
    }
    /// <summary>Creates a new instance of client from given <c>ClientBaseConfiguration</c>.</summary>
    [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
    protected override GreeterClient NewInstance(ClientBaseConfiguration configuration)
    {
      return new GreeterClient(configuration);
    }
  }

  /// <summary>Creates service definition that can be registered with a server</summary>
  /// <param name="serviceImpl">An object implementing the server-side handling logic.</param>
  [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
  public static grpc::ServerServiceDefinition BindService(GreeterBase serviceImpl)
  {
    return grpc::ServerServiceDefinition.CreateBuilder()
        .AddMethod(__Method_SayHello, serviceImpl.SayHelloAsync)
        .AddMethod(__Method_SayHelloAsync, serviceImpl.SayHelloAsync)
        .AddMethod(__Method_LotsOfReplies, serviceImpl.LotsOfReplies)
        .AddMethod(__Method_LotsOfGreetings, serviceImpl.LotsOfGreetings)
        .AddMethod(__Method_BidiHello, serviceImpl.BidiHello)
        .AddMethod(__Method_OldHello, serviceImpl.OldHelloAsync).Build();
  }

  /// <summary>Register service method with a service binder with or without implementation. Useful when customizing the service binding logic.
  /// Note: this method is part of an experimental API that can change or be removed without any prior notice.</summary>
  /// <param name="serviceBinder">Service methods will be bound by calling <c>AddMethod</c> on this object.</param>
  /// <param name="serviceImpl">An object implementing the server-side handling logic.</param>
  [global::System.CodeDom.Compiler.GeneratedCode("grpc_csharp_plugin", null)]
  public static void BindService(grpc::ServiceBinderBase serviceBinder, GreeterBase serviceImpl)
  {
    serviceBinder.AddMethod(__Method_SayHello, serviceImpl == null ? null : new grpc::UnaryServerMethod<global::TestAsyncRequest, global::TestAsyncReply>(serviceImpl.SayHelloAsync));
    serviceBinder.AddMethod(__Method_SayHelloAsync, serviceImpl == null ? null : new grpc::UnaryServerMethod<global::TestAsyncRequest, global::TestAsyncReply>(serviceImpl.SayHelloAsync));
    serviceBinder.AddMethod(__Method_LotsOfReplies, serviceImpl == null ? null : new grpc::ServerStreamingServerMethod<global::TestAsyncRequest, global::TestAsyncReply>(serviceImpl.LotsOfReplies));
    serviceBinder.AddMethod(__Method_LotsOfGreetings, serviceImpl == null ? null : new grpc::ClientStreamingServerMethod<global::TestAsyncRequest, global::TestAsyncReply>(serviceImpl.LotsOfGreetings));
    serviceBinder.AddMethod(__Method_BidiHello, serviceImpl == null ? null : new grpc::DuplexStreamingServerMethod<global::TestAsyncRequest, global::TestAsyncReply>(serviceImpl.BidiHello));
    serviceBinder.AddMethod(__Method_OldHello, serviceImpl == null ? null : new grpc::UnaryServerMethod<global::TestAsyncRequest, global::TestAsyncReply>(serviceImpl.OldHelloAsync));
  }

}
#endregion
