| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152 | // Generated by the gRPC C++ plugin.// If you make any local change, they will be lost.// source: src/proto/grpc/testing/compiler_test.proto// Original file comments:// Copyright 2016 gRPC authors.//// Licensed under the Apache License, Version 2.0 (the "License");// you may not use this file except in compliance with the License.// You may obtain a copy of the License at////     http://www.apache.org/licenses/LICENSE-2.0//// Unless required by applicable law or agreed to in writing, software// distributed under the License is distributed on an "AS IS" BASIS,// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.// See the License for the specific language governing permissions and// limitations under the License.//// File detached comment 1//// File detached comment 2//// File leading comment 1#ifndef GRPC_src_2fproto_2fgrpc_2ftesting_2fcompiler_5ftest_2eproto__INCLUDED#define GRPC_src_2fproto_2fgrpc_2ftesting_2fcompiler_5ftest_2eproto__INCLUDED#include "src/proto/grpc/testing/compiler_test.pb.h"#include <functional>#include <grpc/impl/codegen/port_platform.h>#include <grpcpp/impl/codegen/async_generic_service.h>#include <grpcpp/impl/codegen/async_stream.h>#include <grpcpp/impl/codegen/async_unary_call.h>#include <grpcpp/impl/codegen/client_callback.h>#include <grpcpp/impl/codegen/client_context.h>#include <grpcpp/impl/codegen/completion_queue.h>#include <grpcpp/impl/codegen/message_allocator.h>#include <grpcpp/impl/codegen/method_handler.h>#include <grpcpp/impl/codegen/proto_utils.h>#include <grpcpp/impl/codegen/rpc_method.h>#include <grpcpp/impl/codegen/server_callback.h>#include <grpcpp/impl/codegen/server_callback_handlers.h>#include <grpcpp/impl/codegen/server_context.h>#include <grpcpp/impl/codegen/service_type.h>#include <grpcpp/impl/codegen/status.h>#include <grpcpp/impl/codegen/stub_options.h>#include <grpcpp/impl/codegen/sync_stream.h>namespace grpc {namespace testing {// ServiceA detached comment 1//// ServiceA detached comment 2//// ServiceA leading comment 1class ServiceA final { public:  static constexpr char const* service_full_name() {    return "grpc.testing.ServiceA";  }  class StubInterface {   public:    virtual ~StubInterface() {}    // MethodA1 leading comment 1    virtual ::grpc::Status MethodA1(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::testing::Response* response) = 0;    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::grpc::testing::Response>> AsyncMethodA1(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::CompletionQueue* cq) {      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::grpc::testing::Response>>(AsyncMethodA1Raw(context, request, cq));    }    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::grpc::testing::Response>> PrepareAsyncMethodA1(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::CompletionQueue* cq) {      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::grpc::testing::Response>>(PrepareAsyncMethodA1Raw(context, request, cq));    }    // MethodA1 trailing comment 1    // MethodA2 detached leading comment 1    //    // Method A2 leading comment 1    // Method A2 leading comment 2    std::unique_ptr< ::grpc::ClientWriterInterface< ::grpc::testing::Request>> MethodA2(::grpc::ClientContext* context, ::grpc::testing::Response* response) {      return std::unique_ptr< ::grpc::ClientWriterInterface< ::grpc::testing::Request>>(MethodA2Raw(context, response));    }    std::unique_ptr< ::grpc::ClientAsyncWriterInterface< ::grpc::testing::Request>> AsyncMethodA2(::grpc::ClientContext* context, ::grpc::testing::Response* response, ::grpc::CompletionQueue* cq, void* tag) {      return std::unique_ptr< ::grpc::ClientAsyncWriterInterface< ::grpc::testing::Request>>(AsyncMethodA2Raw(context, response, cq, tag));    }    std::unique_ptr< ::grpc::ClientAsyncWriterInterface< ::grpc::testing::Request>> PrepareAsyncMethodA2(::grpc::ClientContext* context, ::grpc::testing::Response* response, ::grpc::CompletionQueue* cq) {      return std::unique_ptr< ::grpc::ClientAsyncWriterInterface< ::grpc::testing::Request>>(PrepareAsyncMethodA2Raw(context, response, cq));    }    // MethodA2 trailing comment 1    // Method A3 leading comment 1    std::unique_ptr< ::grpc::ClientReaderInterface< ::grpc::testing::Response>> MethodA3(::grpc::ClientContext* context, const ::grpc::testing::Request& request) {      return std::unique_ptr< ::grpc::ClientReaderInterface< ::grpc::testing::Response>>(MethodA3Raw(context, request));    }    std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::grpc::testing::Response>> AsyncMethodA3(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::CompletionQueue* cq, void* tag) {      return std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::grpc::testing::Response>>(AsyncMethodA3Raw(context, request, cq, tag));    }    std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::grpc::testing::Response>> PrepareAsyncMethodA3(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::CompletionQueue* cq) {      return std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::grpc::testing::Response>>(PrepareAsyncMethodA3Raw(context, request, cq));    }    // Method A3 trailing comment 1    // Method A4 leading comment 1    std::unique_ptr< ::grpc::ClientReaderWriterInterface< ::grpc::testing::Request, ::grpc::testing::Response>> MethodA4(::grpc::ClientContext* context) {      return std::unique_ptr< ::grpc::ClientReaderWriterInterface< ::grpc::testing::Request, ::grpc::testing::Response>>(MethodA4Raw(context));    }    std::unique_ptr< ::grpc::ClientAsyncReaderWriterInterface< ::grpc::testing::Request, ::grpc::testing::Response>> AsyncMethodA4(::grpc::ClientContext* context, ::grpc::CompletionQueue* cq, void* tag) {      return std::unique_ptr< ::grpc::ClientAsyncReaderWriterInterface< ::grpc::testing::Request, ::grpc::testing::Response>>(AsyncMethodA4Raw(context, cq, tag));    }    std::unique_ptr< ::grpc::ClientAsyncReaderWriterInterface< ::grpc::testing::Request, ::grpc::testing::Response>> PrepareAsyncMethodA4(::grpc::ClientContext* context, ::grpc::CompletionQueue* cq) {      return std::unique_ptr< ::grpc::ClientAsyncReaderWriterInterface< ::grpc::testing::Request, ::grpc::testing::Response>>(PrepareAsyncMethodA4Raw(context, cq));    }    // Method A4 trailing comment 1    class experimental_async_interface {     public:      virtual ~experimental_async_interface() {}      // MethodA1 leading comment 1      virtual void MethodA1(::grpc::ClientContext* context, const ::grpc::testing::Request* request, ::grpc::testing::Response* response, std::function<void(::grpc::Status)>) = 0;      #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL      virtual void MethodA1(::grpc::ClientContext* context, const ::grpc::testing::Request* request, ::grpc::testing::Response* response, ::grpc::ClientUnaryReactor* reactor) = 0;      #else      virtual void MethodA1(::grpc::ClientContext* context, const ::grpc::testing::Request* request, ::grpc::testing::Response* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0;      #endif      // MethodA1 trailing comment 1      // MethodA2 detached leading comment 1      //      // Method A2 leading comment 1      // Method A2 leading comment 2      #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL      virtual void MethodA2(::grpc::ClientContext* context, ::grpc::testing::Response* response, ::grpc::ClientWriteReactor< ::grpc::testing::Request>* reactor) = 0;      #else      virtual void MethodA2(::grpc::ClientContext* context, ::grpc::testing::Response* response, ::grpc::experimental::ClientWriteReactor< ::grpc::testing::Request>* reactor) = 0;      #endif      // MethodA2 trailing comment 1      // Method A3 leading comment 1      #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL      virtual void MethodA3(::grpc::ClientContext* context, ::grpc::testing::Request* request, ::grpc::ClientReadReactor< ::grpc::testing::Response>* reactor) = 0;      #else      virtual void MethodA3(::grpc::ClientContext* context, ::grpc::testing::Request* request, ::grpc::experimental::ClientReadReactor< ::grpc::testing::Response>* reactor) = 0;      #endif      // Method A3 trailing comment 1      // Method A4 leading comment 1      #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL      virtual void MethodA4(::grpc::ClientContext* context, ::grpc::ClientBidiReactor< ::grpc::testing::Request,::grpc::testing::Response>* reactor) = 0;      #else      virtual void MethodA4(::grpc::ClientContext* context, ::grpc::experimental::ClientBidiReactor< ::grpc::testing::Request,::grpc::testing::Response>* reactor) = 0;      #endif      // Method A4 trailing comment 1    };    #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL    typedef class experimental_async_interface async_interface;    #endif    #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL    async_interface* async() { return experimental_async(); }    #endif    virtual class experimental_async_interface* experimental_async() { return nullptr; }  private:    virtual ::grpc::ClientAsyncResponseReaderInterface< ::grpc::testing::Response>* AsyncMethodA1Raw(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::CompletionQueue* cq) = 0;    virtual ::grpc::ClientAsyncResponseReaderInterface< ::grpc::testing::Response>* PrepareAsyncMethodA1Raw(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::CompletionQueue* cq) = 0;    virtual ::grpc::ClientWriterInterface< ::grpc::testing::Request>* MethodA2Raw(::grpc::ClientContext* context, ::grpc::testing::Response* response) = 0;    virtual ::grpc::ClientAsyncWriterInterface< ::grpc::testing::Request>* AsyncMethodA2Raw(::grpc::ClientContext* context, ::grpc::testing::Response* response, ::grpc::CompletionQueue* cq, void* tag) = 0;    virtual ::grpc::ClientAsyncWriterInterface< ::grpc::testing::Request>* PrepareAsyncMethodA2Raw(::grpc::ClientContext* context, ::grpc::testing::Response* response, ::grpc::CompletionQueue* cq) = 0;    virtual ::grpc::ClientReaderInterface< ::grpc::testing::Response>* MethodA3Raw(::grpc::ClientContext* context, const ::grpc::testing::Request& request) = 0;    virtual ::grpc::ClientAsyncReaderInterface< ::grpc::testing::Response>* AsyncMethodA3Raw(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::CompletionQueue* cq, void* tag) = 0;    virtual ::grpc::ClientAsyncReaderInterface< ::grpc::testing::Response>* PrepareAsyncMethodA3Raw(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::CompletionQueue* cq) = 0;    virtual ::grpc::ClientReaderWriterInterface< ::grpc::testing::Request, ::grpc::testing::Response>* MethodA4Raw(::grpc::ClientContext* context) = 0;    virtual ::grpc::ClientAsyncReaderWriterInterface< ::grpc::testing::Request, ::grpc::testing::Response>* AsyncMethodA4Raw(::grpc::ClientContext* context, ::grpc::CompletionQueue* cq, void* tag) = 0;    virtual ::grpc::ClientAsyncReaderWriterInterface< ::grpc::testing::Request, ::grpc::testing::Response>* PrepareAsyncMethodA4Raw(::grpc::ClientContext* context, ::grpc::CompletionQueue* cq) = 0;  };  class Stub final : public StubInterface {   public:    Stub(const std::shared_ptr< ::grpc::ChannelInterface>& channel);    ::grpc::Status MethodA1(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::testing::Response* response) override;    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::grpc::testing::Response>> AsyncMethodA1(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::CompletionQueue* cq) {      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::grpc::testing::Response>>(AsyncMethodA1Raw(context, request, cq));    }    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::grpc::testing::Response>> PrepareAsyncMethodA1(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::CompletionQueue* cq) {      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::grpc::testing::Response>>(PrepareAsyncMethodA1Raw(context, request, cq));    }    std::unique_ptr< ::grpc::ClientWriter< ::grpc::testing::Request>> MethodA2(::grpc::ClientContext* context, ::grpc::testing::Response* response) {      return std::unique_ptr< ::grpc::ClientWriter< ::grpc::testing::Request>>(MethodA2Raw(context, response));    }    std::unique_ptr< ::grpc::ClientAsyncWriter< ::grpc::testing::Request>> AsyncMethodA2(::grpc::ClientContext* context, ::grpc::testing::Response* response, ::grpc::CompletionQueue* cq, void* tag) {      return std::unique_ptr< ::grpc::ClientAsyncWriter< ::grpc::testing::Request>>(AsyncMethodA2Raw(context, response, cq, tag));    }    std::unique_ptr< ::grpc::ClientAsyncWriter< ::grpc::testing::Request>> PrepareAsyncMethodA2(::grpc::ClientContext* context, ::grpc::testing::Response* response, ::grpc::CompletionQueue* cq) {      return std::unique_ptr< ::grpc::ClientAsyncWriter< ::grpc::testing::Request>>(PrepareAsyncMethodA2Raw(context, response, cq));    }    std::unique_ptr< ::grpc::ClientReader< ::grpc::testing::Response>> MethodA3(::grpc::ClientContext* context, const ::grpc::testing::Request& request) {      return std::unique_ptr< ::grpc::ClientReader< ::grpc::testing::Response>>(MethodA3Raw(context, request));    }    std::unique_ptr< ::grpc::ClientAsyncReader< ::grpc::testing::Response>> AsyncMethodA3(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::CompletionQueue* cq, void* tag) {      return std::unique_ptr< ::grpc::ClientAsyncReader< ::grpc::testing::Response>>(AsyncMethodA3Raw(context, request, cq, tag));    }    std::unique_ptr< ::grpc::ClientAsyncReader< ::grpc::testing::Response>> PrepareAsyncMethodA3(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::CompletionQueue* cq) {      return std::unique_ptr< ::grpc::ClientAsyncReader< ::grpc::testing::Response>>(PrepareAsyncMethodA3Raw(context, request, cq));    }    std::unique_ptr< ::grpc::ClientReaderWriter< ::grpc::testing::Request, ::grpc::testing::Response>> MethodA4(::grpc::ClientContext* context) {      return std::unique_ptr< ::grpc::ClientReaderWriter< ::grpc::testing::Request, ::grpc::testing::Response>>(MethodA4Raw(context));    }    std::unique_ptr<  ::grpc::ClientAsyncReaderWriter< ::grpc::testing::Request, ::grpc::testing::Response>> AsyncMethodA4(::grpc::ClientContext* context, ::grpc::CompletionQueue* cq, void* tag) {      return std::unique_ptr< ::grpc::ClientAsyncReaderWriter< ::grpc::testing::Request, ::grpc::testing::Response>>(AsyncMethodA4Raw(context, cq, tag));    }    std::unique_ptr<  ::grpc::ClientAsyncReaderWriter< ::grpc::testing::Request, ::grpc::testing::Response>> PrepareAsyncMethodA4(::grpc::ClientContext* context, ::grpc::CompletionQueue* cq) {      return std::unique_ptr< ::grpc::ClientAsyncReaderWriter< ::grpc::testing::Request, ::grpc::testing::Response>>(PrepareAsyncMethodA4Raw(context, cq));    }    class experimental_async final :      public StubInterface::experimental_async_interface {     public:      void MethodA1(::grpc::ClientContext* context, const ::grpc::testing::Request* request, ::grpc::testing::Response* response, std::function<void(::grpc::Status)>) override;      #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL      void MethodA1(::grpc::ClientContext* context, const ::grpc::testing::Request* request, ::grpc::testing::Response* response, ::grpc::ClientUnaryReactor* reactor) override;      #else      void MethodA1(::grpc::ClientContext* context, const ::grpc::testing::Request* request, ::grpc::testing::Response* response, ::grpc::experimental::ClientUnaryReactor* reactor) override;      #endif      #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL      void MethodA2(::grpc::ClientContext* context, ::grpc::testing::Response* response, ::grpc::ClientWriteReactor< ::grpc::testing::Request>* reactor) override;      #else      void MethodA2(::grpc::ClientContext* context, ::grpc::testing::Response* response, ::grpc::experimental::ClientWriteReactor< ::grpc::testing::Request>* reactor) override;      #endif      #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL      void MethodA3(::grpc::ClientContext* context, ::grpc::testing::Request* request, ::grpc::ClientReadReactor< ::grpc::testing::Response>* reactor) override;      #else      void MethodA3(::grpc::ClientContext* context, ::grpc::testing::Request* request, ::grpc::experimental::ClientReadReactor< ::grpc::testing::Response>* reactor) override;      #endif      #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL      void MethodA4(::grpc::ClientContext* context, ::grpc::ClientBidiReactor< ::grpc::testing::Request,::grpc::testing::Response>* reactor) override;      #else      void MethodA4(::grpc::ClientContext* context, ::grpc::experimental::ClientBidiReactor< ::grpc::testing::Request,::grpc::testing::Response>* reactor) override;      #endif     private:      friend class Stub;      explicit experimental_async(Stub* stub): stub_(stub) { }      Stub* stub() { return stub_; }      Stub* stub_;    };    class experimental_async_interface* experimental_async() override { return &async_stub_; }   private:    std::shared_ptr< ::grpc::ChannelInterface> channel_;    class experimental_async async_stub_{this};    ::grpc::ClientAsyncResponseReader< ::grpc::testing::Response>* AsyncMethodA1Raw(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::CompletionQueue* cq) override;    ::grpc::ClientAsyncResponseReader< ::grpc::testing::Response>* PrepareAsyncMethodA1Raw(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::CompletionQueue* cq) override;    ::grpc::ClientWriter< ::grpc::testing::Request>* MethodA2Raw(::grpc::ClientContext* context, ::grpc::testing::Response* response) override;    ::grpc::ClientAsyncWriter< ::grpc::testing::Request>* AsyncMethodA2Raw(::grpc::ClientContext* context, ::grpc::testing::Response* response, ::grpc::CompletionQueue* cq, void* tag) override;    ::grpc::ClientAsyncWriter< ::grpc::testing::Request>* PrepareAsyncMethodA2Raw(::grpc::ClientContext* context, ::grpc::testing::Response* response, ::grpc::CompletionQueue* cq) override;    ::grpc::ClientReader< ::grpc::testing::Response>* MethodA3Raw(::grpc::ClientContext* context, const ::grpc::testing::Request& request) override;    ::grpc::ClientAsyncReader< ::grpc::testing::Response>* AsyncMethodA3Raw(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::CompletionQueue* cq, void* tag) override;    ::grpc::ClientAsyncReader< ::grpc::testing::Response>* PrepareAsyncMethodA3Raw(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::CompletionQueue* cq) override;    ::grpc::ClientReaderWriter< ::grpc::testing::Request, ::grpc::testing::Response>* MethodA4Raw(::grpc::ClientContext* context) override;    ::grpc::ClientAsyncReaderWriter< ::grpc::testing::Request, ::grpc::testing::Response>* AsyncMethodA4Raw(::grpc::ClientContext* context, ::grpc::CompletionQueue* cq, void* tag) override;    ::grpc::ClientAsyncReaderWriter< ::grpc::testing::Request, ::grpc::testing::Response>* PrepareAsyncMethodA4Raw(::grpc::ClientContext* context, ::grpc::CompletionQueue* cq) override;    const ::grpc::internal::RpcMethod rpcmethod_MethodA1_;    const ::grpc::internal::RpcMethod rpcmethod_MethodA2_;    const ::grpc::internal::RpcMethod rpcmethod_MethodA3_;    const ::grpc::internal::RpcMethod rpcmethod_MethodA4_;  };  static std::unique_ptr<Stub> NewStub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options = ::grpc::StubOptions());  class Service : public ::grpc::Service {   public:    Service();    virtual ~Service();    // MethodA1 leading comment 1    virtual ::grpc::Status MethodA1(::grpc::ServerContext* context, const ::grpc::testing::Request* request, ::grpc::testing::Response* response);    // MethodA1 trailing comment 1    // MethodA2 detached leading comment 1    //    // Method A2 leading comment 1    // Method A2 leading comment 2    virtual ::grpc::Status MethodA2(::grpc::ServerContext* context, ::grpc::ServerReader< ::grpc::testing::Request>* reader, ::grpc::testing::Response* response);    // MethodA2 trailing comment 1    // Method A3 leading comment 1    virtual ::grpc::Status MethodA3(::grpc::ServerContext* context, const ::grpc::testing::Request* request, ::grpc::ServerWriter< ::grpc::testing::Response>* writer);    // Method A3 trailing comment 1    // Method A4 leading comment 1    virtual ::grpc::Status MethodA4(::grpc::ServerContext* context, ::grpc::ServerReaderWriter< ::grpc::testing::Response, ::grpc::testing::Request>* stream);    // Method A4 trailing comment 1  };  template <class BaseClass>  class WithAsyncMethod_MethodA1 : public BaseClass {   private:    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}   public:    WithAsyncMethod_MethodA1() {      ::grpc::Service::MarkMethodAsync(0);    }    ~WithAsyncMethod_MethodA1() override {      BaseClassMustBeDerivedFromService(this);    }    // disable synchronous version of this method    ::grpc::Status MethodA1(::grpc::ServerContext* /*context*/, const ::grpc::testing::Request* /*request*/, ::grpc::testing::Response* /*response*/) override {      abort();      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");    }    void RequestMethodA1(::grpc::ServerContext* context, ::grpc::testing::Request* request, ::grpc::ServerAsyncResponseWriter< ::grpc::testing::Response>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {      ::grpc::Service::RequestAsyncUnary(0, context, request, response, new_call_cq, notification_cq, tag);    }  };  template <class BaseClass>  class WithAsyncMethod_MethodA2 : public BaseClass {   private:    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}   public:    WithAsyncMethod_MethodA2() {      ::grpc::Service::MarkMethodAsync(1);    }    ~WithAsyncMethod_MethodA2() override {      BaseClassMustBeDerivedFromService(this);    }    // disable synchronous version of this method    ::grpc::Status MethodA2(::grpc::ServerContext* /*context*/, ::grpc::ServerReader< ::grpc::testing::Request>* /*reader*/, ::grpc::testing::Response* /*response*/) override {      abort();      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");    }    void RequestMethodA2(::grpc::ServerContext* context, ::grpc::ServerAsyncReader< ::grpc::testing::Response, ::grpc::testing::Request>* reader, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {      ::grpc::Service::RequestAsyncClientStreaming(1, context, reader, new_call_cq, notification_cq, tag);    }  };  template <class BaseClass>  class WithAsyncMethod_MethodA3 : public BaseClass {   private:    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}   public:    WithAsyncMethod_MethodA3() {      ::grpc::Service::MarkMethodAsync(2);    }    ~WithAsyncMethod_MethodA3() override {      BaseClassMustBeDerivedFromService(this);    }    // disable synchronous version of this method    ::grpc::Status MethodA3(::grpc::ServerContext* /*context*/, const ::grpc::testing::Request* /*request*/, ::grpc::ServerWriter< ::grpc::testing::Response>* /*writer*/) override {      abort();      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");    }    void RequestMethodA3(::grpc::ServerContext* context, ::grpc::testing::Request* request, ::grpc::ServerAsyncWriter< ::grpc::testing::Response>* writer, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {      ::grpc::Service::RequestAsyncServerStreaming(2, context, request, writer, new_call_cq, notification_cq, tag);    }  };  template <class BaseClass>  class WithAsyncMethod_MethodA4 : public BaseClass {   private:    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}   public:    WithAsyncMethod_MethodA4() {      ::grpc::Service::MarkMethodAsync(3);    }    ~WithAsyncMethod_MethodA4() override {      BaseClassMustBeDerivedFromService(this);    }    // disable synchronous version of this method    ::grpc::Status MethodA4(::grpc::ServerContext* /*context*/, ::grpc::ServerReaderWriter< ::grpc::testing::Response, ::grpc::testing::Request>* /*stream*/)  override {      abort();      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");    }    void RequestMethodA4(::grpc::ServerContext* context, ::grpc::ServerAsyncReaderWriter< ::grpc::testing::Response, ::grpc::testing::Request>* stream, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {      ::grpc::Service::RequestAsyncBidiStreaming(3, context, stream, new_call_cq, notification_cq, tag);    }  };  typedef WithAsyncMethod_MethodA1<WithAsyncMethod_MethodA2<WithAsyncMethod_MethodA3<WithAsyncMethod_MethodA4<Service > > > > AsyncService;  template <class BaseClass>  class ExperimentalWithCallbackMethod_MethodA1 : public BaseClass {   private:    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}   public:    ExperimentalWithCallbackMethod_MethodA1() {    #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL      ::grpc::Service::    #else      ::grpc::Service::experimental().    #endif        MarkMethodCallback(0,          new ::grpc::internal::CallbackUnaryHandler< ::grpc::testing::Request, ::grpc::testing::Response>(            [this](    #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL                   ::grpc::CallbackServerContext*    #else                   ::grpc::experimental::CallbackServerContext*    #endif                     context, const ::grpc::testing::Request* request, ::grpc::testing::Response* response) { return this->MethodA1(context, request, response); }));}    void SetMessageAllocatorFor_MethodA1(        ::grpc::experimental::MessageAllocator< ::grpc::testing::Request, ::grpc::testing::Response>* allocator) {    #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL      ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(0);    #else      ::grpc::internal::MethodHandler* const handler = ::grpc::Service::experimental().GetHandler(0);    #endif      static_cast<::grpc::internal::CallbackUnaryHandler< ::grpc::testing::Request, ::grpc::testing::Response>*>(handler)              ->SetMessageAllocator(allocator);    }    ~ExperimentalWithCallbackMethod_MethodA1() override {      BaseClassMustBeDerivedFromService(this);    }    // disable synchronous version of this method    ::grpc::Status MethodA1(::grpc::ServerContext* /*context*/, const ::grpc::testing::Request* /*request*/, ::grpc::testing::Response* /*response*/) override {      abort();      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");    }    #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL    virtual ::grpc::ServerUnaryReactor* MethodA1(      ::grpc::CallbackServerContext* /*context*/, const ::grpc::testing::Request* /*request*/, ::grpc::testing::Response* /*response*/)    #else    virtual ::grpc::experimental::ServerUnaryReactor* MethodA1(      ::grpc::experimental::CallbackServerContext* /*context*/, const ::grpc::testing::Request* /*request*/, ::grpc::testing::Response* /*response*/)    #endif      { return nullptr; }  };  template <class BaseClass>  class ExperimentalWithCallbackMethod_MethodA2 : public BaseClass {   private:    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}   public:    ExperimentalWithCallbackMethod_MethodA2() {    #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL      ::grpc::Service::    #else      ::grpc::Service::experimental().    #endif        MarkMethodCallback(1,          new ::grpc::internal::CallbackClientStreamingHandler< ::grpc::testing::Request, ::grpc::testing::Response>(            [this](    #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL                   ::grpc::CallbackServerContext*    #else                   ::grpc::experimental::CallbackServerContext*    #endif                     context, ::grpc::testing::Response* response) { return this->MethodA2(context, response); }));    }    ~ExperimentalWithCallbackMethod_MethodA2() override {      BaseClassMustBeDerivedFromService(this);    }    // disable synchronous version of this method    ::grpc::Status MethodA2(::grpc::ServerContext* /*context*/, ::grpc::ServerReader< ::grpc::testing::Request>* /*reader*/, ::grpc::testing::Response* /*response*/) override {      abort();      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");    }    #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL    virtual ::grpc::ServerReadReactor< ::grpc::testing::Request>* MethodA2(      ::grpc::CallbackServerContext* /*context*/, ::grpc::testing::Response* /*response*/)    #else    virtual ::grpc::experimental::ServerReadReactor< ::grpc::testing::Request>* MethodA2(      ::grpc::experimental::CallbackServerContext* /*context*/, ::grpc::testing::Response* /*response*/)    #endif      { return nullptr; }  };  template <class BaseClass>  class ExperimentalWithCallbackMethod_MethodA3 : public BaseClass {   private:    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}   public:    ExperimentalWithCallbackMethod_MethodA3() {    #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL      ::grpc::Service::    #else      ::grpc::Service::experimental().    #endif        MarkMethodCallback(2,          new ::grpc::internal::CallbackServerStreamingHandler< ::grpc::testing::Request, ::grpc::testing::Response>(            [this](    #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL                   ::grpc::CallbackServerContext*    #else                   ::grpc::experimental::CallbackServerContext*    #endif                     context, const ::grpc::testing::Request* request) { return this->MethodA3(context, request); }));    }    ~ExperimentalWithCallbackMethod_MethodA3() override {      BaseClassMustBeDerivedFromService(this);    }    // disable synchronous version of this method    ::grpc::Status MethodA3(::grpc::ServerContext* /*context*/, const ::grpc::testing::Request* /*request*/, ::grpc::ServerWriter< ::grpc::testing::Response>* /*writer*/) override {      abort();      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");    }    #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL    virtual ::grpc::ServerWriteReactor< ::grpc::testing::Response>* MethodA3(      ::grpc::CallbackServerContext* /*context*/, const ::grpc::testing::Request* /*request*/)    #else    virtual ::grpc::experimental::ServerWriteReactor< ::grpc::testing::Response>* MethodA3(      ::grpc::experimental::CallbackServerContext* /*context*/, const ::grpc::testing::Request* /*request*/)    #endif      { return nullptr; }  };  template <class BaseClass>  class ExperimentalWithCallbackMethod_MethodA4 : public BaseClass {   private:    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}   public:    ExperimentalWithCallbackMethod_MethodA4() {    #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL      ::grpc::Service::    #else      ::grpc::Service::experimental().    #endif        MarkMethodCallback(3,          new ::grpc::internal::CallbackBidiHandler< ::grpc::testing::Request, ::grpc::testing::Response>(            [this](    #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL                   ::grpc::CallbackServerContext*    #else                   ::grpc::experimental::CallbackServerContext*    #endif                     context) { return this->MethodA4(context); }));    }    ~ExperimentalWithCallbackMethod_MethodA4() override {      BaseClassMustBeDerivedFromService(this);    }    // disable synchronous version of this method    ::grpc::Status MethodA4(::grpc::ServerContext* /*context*/, ::grpc::ServerReaderWriter< ::grpc::testing::Response, ::grpc::testing::Request>* /*stream*/)  override {      abort();      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");    }    #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL    virtual ::grpc::ServerBidiReactor< ::grpc::testing::Request, ::grpc::testing::Response>* MethodA4(      ::grpc::CallbackServerContext* /*context*/)    #else    virtual ::grpc::experimental::ServerBidiReactor< ::grpc::testing::Request, ::grpc::testing::Response>* MethodA4(      ::grpc::experimental::CallbackServerContext* /*context*/)    #endif      { return nullptr; }  };  #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL  typedef ExperimentalWithCallbackMethod_MethodA1<ExperimentalWithCallbackMethod_MethodA2<ExperimentalWithCallbackMethod_MethodA3<ExperimentalWithCallbackMethod_MethodA4<Service > > > > CallbackService;  #endif  typedef ExperimentalWithCallbackMethod_MethodA1<ExperimentalWithCallbackMethod_MethodA2<ExperimentalWithCallbackMethod_MethodA3<ExperimentalWithCallbackMethod_MethodA4<Service > > > > ExperimentalCallbackService;  template <class BaseClass>  class WithGenericMethod_MethodA1 : public BaseClass {   private:    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}   public:    WithGenericMethod_MethodA1() {      ::grpc::Service::MarkMethodGeneric(0);    }    ~WithGenericMethod_MethodA1() override {      BaseClassMustBeDerivedFromService(this);    }    // disable synchronous version of this method    ::grpc::Status MethodA1(::grpc::ServerContext* /*context*/, const ::grpc::testing::Request* /*request*/, ::grpc::testing::Response* /*response*/) override {      abort();      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");    }  };  template <class BaseClass>  class WithGenericMethod_MethodA2 : public BaseClass {   private:    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}   public:    WithGenericMethod_MethodA2() {      ::grpc::Service::MarkMethodGeneric(1);    }    ~WithGenericMethod_MethodA2() override {      BaseClassMustBeDerivedFromService(this);    }    // disable synchronous version of this method    ::grpc::Status MethodA2(::grpc::ServerContext* /*context*/, ::grpc::ServerReader< ::grpc::testing::Request>* /*reader*/, ::grpc::testing::Response* /*response*/) override {      abort();      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");    }  };  template <class BaseClass>  class WithGenericMethod_MethodA3 : public BaseClass {   private:    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}   public:    WithGenericMethod_MethodA3() {      ::grpc::Service::MarkMethodGeneric(2);    }    ~WithGenericMethod_MethodA3() override {      BaseClassMustBeDerivedFromService(this);    }    // disable synchronous version of this method    ::grpc::Status MethodA3(::grpc::ServerContext* /*context*/, const ::grpc::testing::Request* /*request*/, ::grpc::ServerWriter< ::grpc::testing::Response>* /*writer*/) override {      abort();      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");    }  };  template <class BaseClass>  class WithGenericMethod_MethodA4 : public BaseClass {   private:    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}   public:    WithGenericMethod_MethodA4() {      ::grpc::Service::MarkMethodGeneric(3);    }    ~WithGenericMethod_MethodA4() override {      BaseClassMustBeDerivedFromService(this);    }    // disable synchronous version of this method    ::grpc::Status MethodA4(::grpc::ServerContext* /*context*/, ::grpc::ServerReaderWriter< ::grpc::testing::Response, ::grpc::testing::Request>* /*stream*/)  override {      abort();      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");    }  };  template <class BaseClass>  class WithRawMethod_MethodA1 : public BaseClass {   private:    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}   public:    WithRawMethod_MethodA1() {      ::grpc::Service::MarkMethodRaw(0);    }    ~WithRawMethod_MethodA1() override {      BaseClassMustBeDerivedFromService(this);    }    // disable synchronous version of this method    ::grpc::Status MethodA1(::grpc::ServerContext* /*context*/, const ::grpc::testing::Request* /*request*/, ::grpc::testing::Response* /*response*/) override {      abort();      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");    }    void RequestMethodA1(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {      ::grpc::Service::RequestAsyncUnary(0, context, request, response, new_call_cq, notification_cq, tag);    }  };  template <class BaseClass>  class WithRawMethod_MethodA2 : public BaseClass {   private:    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}   public:    WithRawMethod_MethodA2() {      ::grpc::Service::MarkMethodRaw(1);    }    ~WithRawMethod_MethodA2() override {      BaseClassMustBeDerivedFromService(this);    }    // disable synchronous version of this method    ::grpc::Status MethodA2(::grpc::ServerContext* /*context*/, ::grpc::ServerReader< ::grpc::testing::Request>* /*reader*/, ::grpc::testing::Response* /*response*/) override {      abort();      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");    }    void RequestMethodA2(::grpc::ServerContext* context, ::grpc::ServerAsyncReader< ::grpc::ByteBuffer, ::grpc::ByteBuffer>* reader, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {      ::grpc::Service::RequestAsyncClientStreaming(1, context, reader, new_call_cq, notification_cq, tag);    }  };  template <class BaseClass>  class WithRawMethod_MethodA3 : public BaseClass {   private:    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}   public:    WithRawMethod_MethodA3() {      ::grpc::Service::MarkMethodRaw(2);    }    ~WithRawMethod_MethodA3() override {      BaseClassMustBeDerivedFromService(this);    }    // disable synchronous version of this method    ::grpc::Status MethodA3(::grpc::ServerContext* /*context*/, const ::grpc::testing::Request* /*request*/, ::grpc::ServerWriter< ::grpc::testing::Response>* /*writer*/) override {      abort();      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");    }    void RequestMethodA3(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncWriter< ::grpc::ByteBuffer>* writer, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {      ::grpc::Service::RequestAsyncServerStreaming(2, context, request, writer, new_call_cq, notification_cq, tag);    }  };  template <class BaseClass>  class WithRawMethod_MethodA4 : public BaseClass {   private:    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}   public:    WithRawMethod_MethodA4() {      ::grpc::Service::MarkMethodRaw(3);    }    ~WithRawMethod_MethodA4() override {      BaseClassMustBeDerivedFromService(this);    }    // disable synchronous version of this method    ::grpc::Status MethodA4(::grpc::ServerContext* /*context*/, ::grpc::ServerReaderWriter< ::grpc::testing::Response, ::grpc::testing::Request>* /*stream*/)  override {      abort();      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");    }    void RequestMethodA4(::grpc::ServerContext* context, ::grpc::ServerAsyncReaderWriter< ::grpc::ByteBuffer, ::grpc::ByteBuffer>* stream, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {      ::grpc::Service::RequestAsyncBidiStreaming(3, context, stream, new_call_cq, notification_cq, tag);    }  };  template <class BaseClass>  class ExperimentalWithRawCallbackMethod_MethodA1 : public BaseClass {   private:    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}   public:    ExperimentalWithRawCallbackMethod_MethodA1() {    #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL      ::grpc::Service::    #else      ::grpc::Service::experimental().    #endif        MarkMethodRawCallback(0,          new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(            [this](    #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL                   ::grpc::CallbackServerContext*    #else                   ::grpc::experimental::CallbackServerContext*    #endif                     context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->MethodA1(context, request, response); }));    }    ~ExperimentalWithRawCallbackMethod_MethodA1() override {      BaseClassMustBeDerivedFromService(this);    }    // disable synchronous version of this method    ::grpc::Status MethodA1(::grpc::ServerContext* /*context*/, const ::grpc::testing::Request* /*request*/, ::grpc::testing::Response* /*response*/) override {      abort();      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");    }    #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL    virtual ::grpc::ServerUnaryReactor* MethodA1(      ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/)    #else    virtual ::grpc::experimental::ServerUnaryReactor* MethodA1(      ::grpc::experimental::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/)    #endif      { return nullptr; }  };  template <class BaseClass>  class ExperimentalWithRawCallbackMethod_MethodA2 : public BaseClass {   private:    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}   public:    ExperimentalWithRawCallbackMethod_MethodA2() {    #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL      ::grpc::Service::    #else      ::grpc::Service::experimental().    #endif        MarkMethodRawCallback(1,          new ::grpc::internal::CallbackClientStreamingHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(            [this](    #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL                   ::grpc::CallbackServerContext*    #else                   ::grpc::experimental::CallbackServerContext*    #endif                     context, ::grpc::ByteBuffer* response) { return this->MethodA2(context, response); }));    }    ~ExperimentalWithRawCallbackMethod_MethodA2() override {      BaseClassMustBeDerivedFromService(this);    }    // disable synchronous version of this method    ::grpc::Status MethodA2(::grpc::ServerContext* /*context*/, ::grpc::ServerReader< ::grpc::testing::Request>* /*reader*/, ::grpc::testing::Response* /*response*/) override {      abort();      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");    }    #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL    virtual ::grpc::ServerReadReactor< ::grpc::ByteBuffer>* MethodA2(      ::grpc::CallbackServerContext* /*context*/, ::grpc::ByteBuffer* /*response*/)    #else    virtual ::grpc::experimental::ServerReadReactor< ::grpc::ByteBuffer>* MethodA2(      ::grpc::experimental::CallbackServerContext* /*context*/, ::grpc::ByteBuffer* /*response*/)    #endif      { return nullptr; }  };  template <class BaseClass>  class ExperimentalWithRawCallbackMethod_MethodA3 : public BaseClass {   private:    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}   public:    ExperimentalWithRawCallbackMethod_MethodA3() {    #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL      ::grpc::Service::    #else      ::grpc::Service::experimental().    #endif        MarkMethodRawCallback(2,          new ::grpc::internal::CallbackServerStreamingHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(            [this](    #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL                   ::grpc::CallbackServerContext*    #else                   ::grpc::experimental::CallbackServerContext*    #endif                     context, const::grpc::ByteBuffer* request) { return this->MethodA3(context, request); }));    }    ~ExperimentalWithRawCallbackMethod_MethodA3() override {      BaseClassMustBeDerivedFromService(this);    }    // disable synchronous version of this method    ::grpc::Status MethodA3(::grpc::ServerContext* /*context*/, const ::grpc::testing::Request* /*request*/, ::grpc::ServerWriter< ::grpc::testing::Response>* /*writer*/) override {      abort();      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");    }    #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL    virtual ::grpc::ServerWriteReactor< ::grpc::ByteBuffer>* MethodA3(      ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/)    #else    virtual ::grpc::experimental::ServerWriteReactor< ::grpc::ByteBuffer>* MethodA3(      ::grpc::experimental::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/)    #endif      { return nullptr; }  };  template <class BaseClass>  class ExperimentalWithRawCallbackMethod_MethodA4 : public BaseClass {   private:    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}   public:    ExperimentalWithRawCallbackMethod_MethodA4() {    #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL      ::grpc::Service::    #else      ::grpc::Service::experimental().    #endif        MarkMethodRawCallback(3,          new ::grpc::internal::CallbackBidiHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(            [this](    #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL                   ::grpc::CallbackServerContext*    #else                   ::grpc::experimental::CallbackServerContext*    #endif                     context) { return this->MethodA4(context); }));    }    ~ExperimentalWithRawCallbackMethod_MethodA4() override {      BaseClassMustBeDerivedFromService(this);    }    // disable synchronous version of this method    ::grpc::Status MethodA4(::grpc::ServerContext* /*context*/, ::grpc::ServerReaderWriter< ::grpc::testing::Response, ::grpc::testing::Request>* /*stream*/)  override {      abort();      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");    }    #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL    virtual ::grpc::ServerBidiReactor< ::grpc::ByteBuffer, ::grpc::ByteBuffer>* MethodA4(      ::grpc::CallbackServerContext* /*context*/)    #else    virtual ::grpc::experimental::ServerBidiReactor< ::grpc::ByteBuffer, ::grpc::ByteBuffer>* MethodA4(      ::grpc::experimental::CallbackServerContext* /*context*/)    #endif      { return nullptr; }  };  template <class BaseClass>  class WithStreamedUnaryMethod_MethodA1 : public BaseClass {   private:    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}   public:    WithStreamedUnaryMethod_MethodA1() {      ::grpc::Service::MarkMethodStreamed(0,        new ::grpc::internal::StreamedUnaryHandler<          ::grpc::testing::Request, ::grpc::testing::Response>(            [this](::grpc::ServerContext* context,                   ::grpc::ServerUnaryStreamer<                     ::grpc::testing::Request, ::grpc::testing::Response>* streamer) {                       return this->StreamedMethodA1(context,                         streamer);                  }));    }    ~WithStreamedUnaryMethod_MethodA1() override {      BaseClassMustBeDerivedFromService(this);    }    // disable regular version of this method    ::grpc::Status MethodA1(::grpc::ServerContext* /*context*/, const ::grpc::testing::Request* /*request*/, ::grpc::testing::Response* /*response*/) override {      abort();      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");    }    // replace default version of method with streamed unary    virtual ::grpc::Status StreamedMethodA1(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::grpc::testing::Request,::grpc::testing::Response>* server_unary_streamer) = 0;  };  typedef WithStreamedUnaryMethod_MethodA1<Service > StreamedUnaryService;  template <class BaseClass>  class WithSplitStreamingMethod_MethodA3 : public BaseClass {   private:    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}   public:    WithSplitStreamingMethod_MethodA3() {      ::grpc::Service::MarkMethodStreamed(2,        new ::grpc::internal::SplitServerStreamingHandler<          ::grpc::testing::Request, ::grpc::testing::Response>(            [this](::grpc::ServerContext* context,                   ::grpc::ServerSplitStreamer<                     ::grpc::testing::Request, ::grpc::testing::Response>* streamer) {                       return this->StreamedMethodA3(context,                         streamer);                  }));    }    ~WithSplitStreamingMethod_MethodA3() override {      BaseClassMustBeDerivedFromService(this);    }    // disable regular version of this method    ::grpc::Status MethodA3(::grpc::ServerContext* /*context*/, const ::grpc::testing::Request* /*request*/, ::grpc::ServerWriter< ::grpc::testing::Response>* /*writer*/) override {      abort();      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");    }    // replace default version of method with split streamed    virtual ::grpc::Status StreamedMethodA3(::grpc::ServerContext* context, ::grpc::ServerSplitStreamer< ::grpc::testing::Request,::grpc::testing::Response>* server_split_streamer) = 0;  };  typedef WithSplitStreamingMethod_MethodA3<Service > SplitStreamedService;  typedef WithStreamedUnaryMethod_MethodA1<WithSplitStreamingMethod_MethodA3<Service > > StreamedService;};// ServiceB leading comment 1class ServiceB final { public:  static constexpr char const* service_full_name() {    return "grpc.testing.ServiceB";  }  class StubInterface {   public:    virtual ~StubInterface() {}    // MethodB1 leading comment 1    virtual ::grpc::Status MethodB1(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::testing::Response* response) = 0;    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::grpc::testing::Response>> AsyncMethodB1(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::CompletionQueue* cq) {      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::grpc::testing::Response>>(AsyncMethodB1Raw(context, request, cq));    }    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::grpc::testing::Response>> PrepareAsyncMethodB1(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::CompletionQueue* cq) {      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::grpc::testing::Response>>(PrepareAsyncMethodB1Raw(context, request, cq));    }    // MethodB1 trailing comment 1    class experimental_async_interface {     public:      virtual ~experimental_async_interface() {}      // MethodB1 leading comment 1      virtual void MethodB1(::grpc::ClientContext* context, const ::grpc::testing::Request* request, ::grpc::testing::Response* response, std::function<void(::grpc::Status)>) = 0;      #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL      virtual void MethodB1(::grpc::ClientContext* context, const ::grpc::testing::Request* request, ::grpc::testing::Response* response, ::grpc::ClientUnaryReactor* reactor) = 0;      #else      virtual void MethodB1(::grpc::ClientContext* context, const ::grpc::testing::Request* request, ::grpc::testing::Response* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0;      #endif      // MethodB1 trailing comment 1    };    #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL    typedef class experimental_async_interface async_interface;    #endif    #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL    async_interface* async() { return experimental_async(); }    #endif    virtual class experimental_async_interface* experimental_async() { return nullptr; }  private:    virtual ::grpc::ClientAsyncResponseReaderInterface< ::grpc::testing::Response>* AsyncMethodB1Raw(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::CompletionQueue* cq) = 0;    virtual ::grpc::ClientAsyncResponseReaderInterface< ::grpc::testing::Response>* PrepareAsyncMethodB1Raw(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::CompletionQueue* cq) = 0;  };  class Stub final : public StubInterface {   public:    Stub(const std::shared_ptr< ::grpc::ChannelInterface>& channel);    ::grpc::Status MethodB1(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::testing::Response* response) override;    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::grpc::testing::Response>> AsyncMethodB1(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::CompletionQueue* cq) {      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::grpc::testing::Response>>(AsyncMethodB1Raw(context, request, cq));    }    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::grpc::testing::Response>> PrepareAsyncMethodB1(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::CompletionQueue* cq) {      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::grpc::testing::Response>>(PrepareAsyncMethodB1Raw(context, request, cq));    }    class experimental_async final :      public StubInterface::experimental_async_interface {     public:      void MethodB1(::grpc::ClientContext* context, const ::grpc::testing::Request* request, ::grpc::testing::Response* response, std::function<void(::grpc::Status)>) override;      #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL      void MethodB1(::grpc::ClientContext* context, const ::grpc::testing::Request* request, ::grpc::testing::Response* response, ::grpc::ClientUnaryReactor* reactor) override;      #else      void MethodB1(::grpc::ClientContext* context, const ::grpc::testing::Request* request, ::grpc::testing::Response* response, ::grpc::experimental::ClientUnaryReactor* reactor) override;      #endif     private:      friend class Stub;      explicit experimental_async(Stub* stub): stub_(stub) { }      Stub* stub() { return stub_; }      Stub* stub_;    };    class experimental_async_interface* experimental_async() override { return &async_stub_; }   private:    std::shared_ptr< ::grpc::ChannelInterface> channel_;    class experimental_async async_stub_{this};    ::grpc::ClientAsyncResponseReader< ::grpc::testing::Response>* AsyncMethodB1Raw(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::CompletionQueue* cq) override;    ::grpc::ClientAsyncResponseReader< ::grpc::testing::Response>* PrepareAsyncMethodB1Raw(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::CompletionQueue* cq) override;    const ::grpc::internal::RpcMethod rpcmethod_MethodB1_;  };  static std::unique_ptr<Stub> NewStub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options = ::grpc::StubOptions());  class Service : public ::grpc::Service {   public:    Service();    virtual ~Service();    // MethodB1 leading comment 1    virtual ::grpc::Status MethodB1(::grpc::ServerContext* context, const ::grpc::testing::Request* request, ::grpc::testing::Response* response);    // MethodB1 trailing comment 1  };  template <class BaseClass>  class WithAsyncMethod_MethodB1 : public BaseClass {   private:    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}   public:    WithAsyncMethod_MethodB1() {      ::grpc::Service::MarkMethodAsync(0);    }    ~WithAsyncMethod_MethodB1() override {      BaseClassMustBeDerivedFromService(this);    }    // disable synchronous version of this method    ::grpc::Status MethodB1(::grpc::ServerContext* /*context*/, const ::grpc::testing::Request* /*request*/, ::grpc::testing::Response* /*response*/) override {      abort();      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");    }    void RequestMethodB1(::grpc::ServerContext* context, ::grpc::testing::Request* request, ::grpc::ServerAsyncResponseWriter< ::grpc::testing::Response>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {      ::grpc::Service::RequestAsyncUnary(0, context, request, response, new_call_cq, notification_cq, tag);    }  };  typedef WithAsyncMethod_MethodB1<Service > AsyncService;  template <class BaseClass>  class ExperimentalWithCallbackMethod_MethodB1 : public BaseClass {   private:    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}   public:    ExperimentalWithCallbackMethod_MethodB1() {    #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL      ::grpc::Service::    #else      ::grpc::Service::experimental().    #endif        MarkMethodCallback(0,          new ::grpc::internal::CallbackUnaryHandler< ::grpc::testing::Request, ::grpc::testing::Response>(            [this](    #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL                   ::grpc::CallbackServerContext*    #else                   ::grpc::experimental::CallbackServerContext*    #endif                     context, const ::grpc::testing::Request* request, ::grpc::testing::Response* response) { return this->MethodB1(context, request, response); }));}    void SetMessageAllocatorFor_MethodB1(        ::grpc::experimental::MessageAllocator< ::grpc::testing::Request, ::grpc::testing::Response>* allocator) {    #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL      ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(0);    #else      ::grpc::internal::MethodHandler* const handler = ::grpc::Service::experimental().GetHandler(0);    #endif      static_cast<::grpc::internal::CallbackUnaryHandler< ::grpc::testing::Request, ::grpc::testing::Response>*>(handler)              ->SetMessageAllocator(allocator);    }    ~ExperimentalWithCallbackMethod_MethodB1() override {      BaseClassMustBeDerivedFromService(this);    }    // disable synchronous version of this method    ::grpc::Status MethodB1(::grpc::ServerContext* /*context*/, const ::grpc::testing::Request* /*request*/, ::grpc::testing::Response* /*response*/) override {      abort();      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");    }    #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL    virtual ::grpc::ServerUnaryReactor* MethodB1(      ::grpc::CallbackServerContext* /*context*/, const ::grpc::testing::Request* /*request*/, ::grpc::testing::Response* /*response*/)    #else    virtual ::grpc::experimental::ServerUnaryReactor* MethodB1(      ::grpc::experimental::CallbackServerContext* /*context*/, const ::grpc::testing::Request* /*request*/, ::grpc::testing::Response* /*response*/)    #endif      { return nullptr; }  };  #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL  typedef ExperimentalWithCallbackMethod_MethodB1<Service > CallbackService;  #endif  typedef ExperimentalWithCallbackMethod_MethodB1<Service > ExperimentalCallbackService;  template <class BaseClass>  class WithGenericMethod_MethodB1 : public BaseClass {   private:    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}   public:    WithGenericMethod_MethodB1() {      ::grpc::Service::MarkMethodGeneric(0);    }    ~WithGenericMethod_MethodB1() override {      BaseClassMustBeDerivedFromService(this);    }    // disable synchronous version of this method    ::grpc::Status MethodB1(::grpc::ServerContext* /*context*/, const ::grpc::testing::Request* /*request*/, ::grpc::testing::Response* /*response*/) override {      abort();      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");    }  };  template <class BaseClass>  class WithRawMethod_MethodB1 : public BaseClass {   private:    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}   public:    WithRawMethod_MethodB1() {      ::grpc::Service::MarkMethodRaw(0);    }    ~WithRawMethod_MethodB1() override {      BaseClassMustBeDerivedFromService(this);    }    // disable synchronous version of this method    ::grpc::Status MethodB1(::grpc::ServerContext* /*context*/, const ::grpc::testing::Request* /*request*/, ::grpc::testing::Response* /*response*/) override {      abort();      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");    }    void RequestMethodB1(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {      ::grpc::Service::RequestAsyncUnary(0, context, request, response, new_call_cq, notification_cq, tag);    }  };  template <class BaseClass>  class ExperimentalWithRawCallbackMethod_MethodB1 : public BaseClass {   private:    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}   public:    ExperimentalWithRawCallbackMethod_MethodB1() {    #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL      ::grpc::Service::    #else      ::grpc::Service::experimental().    #endif        MarkMethodRawCallback(0,          new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(            [this](    #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL                   ::grpc::CallbackServerContext*    #else                   ::grpc::experimental::CallbackServerContext*    #endif                     context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->MethodB1(context, request, response); }));    }    ~ExperimentalWithRawCallbackMethod_MethodB1() override {      BaseClassMustBeDerivedFromService(this);    }    // disable synchronous version of this method    ::grpc::Status MethodB1(::grpc::ServerContext* /*context*/, const ::grpc::testing::Request* /*request*/, ::grpc::testing::Response* /*response*/) override {      abort();      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");    }    #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL    virtual ::grpc::ServerUnaryReactor* MethodB1(      ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/)    #else    virtual ::grpc::experimental::ServerUnaryReactor* MethodB1(      ::grpc::experimental::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/)    #endif      { return nullptr; }  };  template <class BaseClass>  class WithStreamedUnaryMethod_MethodB1 : public BaseClass {   private:    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}   public:    WithStreamedUnaryMethod_MethodB1() {      ::grpc::Service::MarkMethodStreamed(0,        new ::grpc::internal::StreamedUnaryHandler<          ::grpc::testing::Request, ::grpc::testing::Response>(            [this](::grpc::ServerContext* context,                   ::grpc::ServerUnaryStreamer<                     ::grpc::testing::Request, ::grpc::testing::Response>* streamer) {                       return this->StreamedMethodB1(context,                         streamer);                  }));    }    ~WithStreamedUnaryMethod_MethodB1() override {      BaseClassMustBeDerivedFromService(this);    }    // disable regular version of this method    ::grpc::Status MethodB1(::grpc::ServerContext* /*context*/, const ::grpc::testing::Request* /*request*/, ::grpc::testing::Response* /*response*/) override {      abort();      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");    }    // replace default version of method with streamed unary    virtual ::grpc::Status StreamedMethodB1(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::grpc::testing::Request,::grpc::testing::Response>* server_unary_streamer) = 0;  };  typedef WithStreamedUnaryMethod_MethodB1<Service > StreamedUnaryService;  typedef Service SplitStreamedService;  typedef WithStreamedUnaryMethod_MethodB1<Service > StreamedService;};// ServiceB trailing comment 1}  // namespace testing}  // namespace grpc#endif  // GRPC_src_2fproto_2fgrpc_2ftesting_2fcompiler_5ftest_2eproto__INCLUDED
 |